So I was rebuilding an old road bike from the 80's and my uncle (who rides motorcycles and bicycles) pass on the tip to me for cleaning off oil and road grime from the drivetrain. Kerosene!!!! I tried it by soaking an old chain in a pan of kerosene and wiping it down with a small paint brush, within 5 minutes the chain looked brand new! I couldnot believe it.
I looked online for opinions on using Kerosene and some people had concerns that it might eat away brake pads or tires, but not really the case. That doesn't mean submerge your whole bike into a kerosene bath, but some overspray will not hurt your bike.
I also saw that WD-40 is also a great degreaser. It is put since WD-40 is also a lubircant it does leave a greasy residue which I washed off with water and dish soap, cus WD-40 is also known for attracting dirt.
So I would recomend Kerosene. If you want to be enviromentally friendly pour some in a jar (like a Mason jar), clean your parts and then filter the used kerosene into another jar using an old pair of nylons.
And oh yea, once clean rinse the kerosene off, otherwise if you just let it air dry you will smell up the kitchen and get yelled at by your spouse.
Just remember you pay a lot of money for your bikes and a bit of preventive maintenance can go along way.