How to find out which package is causing dependency problems?

Today, I (once again) ran into Meteor package dependency hell. I have an app here that was created with Meteor 1.6 and ran fine on my old MacBook. Now I moved to a new machine and tried to run it from there. Exact same code-base, no changes. But nothing works as expected.

The biggest issues (as always) are related to SCSS, which is (still to this time) not officially supported by Meteor and requires a lot of weird work-arounds each time I upgrade my app. So I am already kind of used to that mess. But what really made me crazy this time is that even an untouched code-base won’t work after just one year of not touching it.

The first problem was that node sass could not be installed correctly, because the download link is broken. To fix that, I tried to upgrade the whole app to the latest fourseven:scss package. I had to touch a lot of package.js files for this, but still get the following message:

error: Potentially incompatible change required to top-level dependency: fourseven:scss 4.9.3, was 4.12.0.

I checked all my files, but none of them is referencing this particular version. So my next attempt was to update Meteor to the latest 1.6 release. But this caused another load of “incompatibility” messages, due to packages referencing older versions (in addition to the above-mentioned error).

Frustrated, I reverted back to Meteor 1.6 and tried to find out which package is actually forcing fourseven:scss to stick to 4.9.3 Is there any chance to do this without skimming through lots of package-internal code?

Have you tried meteor list --tree to determine the dependencies?

1 Like

Thanks, I wasn’t aware of this option.