What does "Conflict: Constraint ... is not satisfied by ..." mean?

#1

I’m back on a Meteor project I started in 2015. In early 2018 I updated the app to Meteor 1.6.0.1. Now, I’m running into issues trying to update to the latest patch. Does anyone have experience with this type of error? I’m getting it for several meteor packages.

error: Conflict: Constraint babel-compiler@6.19.1 is not satisfied by babel-compiler 7.2.4.
Constraints on package "babel-compiler":
* babel-compiler@~7.2.4 <- top level
* babel-compiler@7.2.0 <- ecmascript 0.12.4
* babel-compiler@7.2.0 <- minifier-js 2.4.0 <- standard-minifier-js 2.4.0 <- standard-minifiers 1.1.0
* babel-compiler@7.2.0 <- standard-minifier-js 2.4.0 <- standard-minifiers 1.1.0
* babel-compiler@6.19.1 <- coffeescript 1.12.6_1 <- monbro:mongodb-mapreduce-aggregation 1.0.1
#2

Looking at your error, your project wants babel-compiler@~7.2.4.
This requirement comes from the packages ecmascript and standard-minifiers

You also have a package installed that wants babel-compiler@6.19.1
This requirement comes from the pacakge monbro:mongodb-mapreduce-aggregation via it’s dependency on coffeescript@1.12.6_1

Because 7.2.4 is a major version change from 6.19.1, Meteor cannot satisfy both packages, thus the error.

Possible remedies include:

  • Update all your packages and see if it can pick versions that satisfy everyone’s constraints:
    meteor update --packages-only --all-packages --allow-incompatible-update
    
    Note: Breaking changes in packages may cause issues in your app
  • Remove the coffeescript dependency from monbro:mongodb-mapreduce-aggregation by doing:
    • Clone into your local packages directory
    • Transpile coffeescript to javascript
    • Use the new pure-js version
  • Refactor your app to use mongodb’s native mapReduce method instead of monbro:mongodb-mapreduce-aggregation
    ExampleCollection.rawCollection().mapReduce