My method is to cook well. A large variability of dishes of different national cuisines can help you to avoid junk food.
Eg for today's dinner I had a nice rizotto with fried onion, sweet pepper, aubergines and semi-milled rice (don't forget soy sauce though). It's tasty, it gives energy and after eating dishes like that it's hard to call nachos/soda 'cravings'. They really taste like junk.