How to install npm packages

After cloning a repository to my local drive I have to install all npm packages (dependencies). My package.json looks like this:

"dependencies": {
  "babel-runtime": "^6.18.0",
  "bcrypt": "^0.8.7",
  "jointjs": "^0.9.7",
  "moment": "^2.17.0"
},
"devDependencies": {
  "chai": "^3.5.0",
  "chimp": "^0.45.1",
  "phantomjs": "^1.9.8"
}

So I am doing

meteor npm install

Is this the correct way? And is it correct, that I have to do that manually? I mean, doing meteor run start won’t install any missing packages.

And the second problem is, that with meteor npm install the latest versions will be installed. In my case, I need to use jointjs with version 0.9.7. Newer versions will break my application. That’s why the correct version is set in my package.json, but it seems to be ignored as 0.9.10 will get installed…

YES, meteor npm install is the correct way.

What it does it uses the Meteor version of node to install the packages.

As for your version problem "jointjs": "^0.9.7",
The issue is with ^ which indicates that the newest version compatible with the one defined should be applied. By removing it, npm will get the exact version.

More info here: https://github.com/isaacs/node-semver
Specifically about the caret: https://github.com/npm/node-semver#caret-ranges-123-025-004

Oh, thanks. And how can I update all packages except this one? meteor npm update won’t work for that…

You will need to set it to match the exact version.

So like this:
"jointjs": "0.9.7",