NPM, Travis, Node 0.8 and the “Caret Operator”
If you have a node.js project that you want to have tested using Travis-CI, you may run in to a problem if you want to support node <= 0.8. The reason for this is the new caret operator, which was introduced in node-semver.
This module is used by npm to figure out how to resolve versions for your dependencies, and while it’s a great idea, it fails to work on older node versions without upgrading npm first. It’s actually fairly trivial to fix this, however.
.travis.yml-file, simply define:
before_install: - npm install -g npm@~1.4.6
This will make sure a compatible version of npm is installed before running a regular npm install on your dependencies.
Note: While this will make Travis able to install your dependencies, people still running node <= 0.8 will have to go through the same routine, which you might want to make a note of in your README.