A hot pressure wash will do the trick. Just cover the alternator with a heavy (thick) plastic bag so it wan't get wet inside, and avoid spraying the starter, solenoid, and any electronic boxes with direct high pressure. Also, cover up the air filter intake and any crankcase vents as well.
Before you start, you can spray it down with a degreaser and let that soak for a while, then spray it with high pressure. After you have sprayed it, let it dry for a few hours with a heater blowing warm air on it. If you don't have heater to blow warm air on it, and you can wait till warmer weather, then you might be better off doing it in the spring/summer and park it in the sun to let it dry off.
There's a guy that lives near my parents and he has a high pressure steam wash outfit on a trailer and he has a pretty good side business doing just that with many of the local loggers there. He drives out to the logging site, and steam washes the skidders, feller bunchers, and 18 wheelers. That's pretty much the same technique that he uses, only they just let them dry overnight. If it's going to get below freezing though, he just waits for a warmer day to do it.