We had them for years. They would go dormant in the winter so every year I'd think "we got them!" and then in the spring, there they'd be again.
First, you must completely remove everything from your pantry/cabintes and put everything dry - EVERYTHING - in a non-porous container. Cereal, rice, pasta, spices, bread crumbs, oatmeal, flour, dog food, etc. all need to go in plastic or glass containers. Everything in your pantry should be in glass or plastic, except for things that are in jars and cans already. Doesn't matter if they're sealed or not, doesn't matter if the contents inside are bagged or not...no cardboard boxes, bags, or any other porous containers allowed.
Second, get some diatomite. I just used the stuff that's in my pool's filter but you can get this at a hardware store. Empty your pantry/cabinets completely, wash and dry all of the shelving (if it's removable, take it out and wash it, getting the sides of the shelves too) and then sprinkle diatomite along all the cracks and crevices, the corners, etc.
Third, wipe the exterior of every single container as you put it back in the pantry/cabinet.
My final clean out, the one that worked, cost me about $100 in containers and a good 6 hours of cleaning, but I haven't had any moths (knock on wood) in a few years.
ETA: yes on the pherimone traps. We also used those to catch the mature moths and prevent them from laying more eggs.