Evap canister and/or the canister vent valve solenoid. The hose gets clogged up with dirt, and when the purge solenoid opens to suck the vapors out of the canister, it sucks the dust and dirt thru the vent solenoid clogging it up, and in worse cases fills up the evap canister with dirt too.
If that's the problem the canister is around 100 bucks, the vent solenoid with an updated vent hose is about 40 bucks from places like Rock Auto. Solenoid is easy to get to once you drop the spare tire, the evep canister is above and just in front of the rear axle. Hardest part of changing them is the hose connectors on the canister.