他のプロジェクトからpackage.jsonをコピーして、すべての依存関係を最新のバージョンにしたいと思います。
一番簡単な方法は何でしょうか?
今、私が知っている最も良い方法は、npm info express version
を実行して、それぞれのpackage.jsonを手動で更新することです。もっと良い方法があるはずです。
{
"name": "myproject",
"description": "my node project",
"version": "1.0.0",
"engines": {
"node": "0.8.4",
"npm": "1.1.65"
},
"private": true,
"dependencies": {
"express": "~3.0.3", // how do I get these bumped to latest?
"mongodb": "~1.2.5",
"underscore": "~1.4.2",
"rjs": "~2.9.0",
"jade": "~0.27.2",
"async": "~0.1.22"
}
}
update 5/1/19:6年経った今でも、この問題に対する包括的な解決策としてnpm-check-updatesを維持しています。楽しんでください。
今はnpm-check-updatesが唯一の方法のようですね。
npm i -g npm-check-updates
ncu -u
npm install
npmについて <3.11:
単純にすべての依存関係'のバージョンを*
に変更してから、npm update -save
を実行してください。 (注: 最近の(3.11)バージョンのnpmでは壊れています).
以前は
"dependencies": {
"express": "*",
"mongodb": "*",
"underscore": "*",
"rjs": "*",
"jade": "*",
"async": "*"
}
後
"dependencies": {
"express": "~3.2.0",
"mongodb": "~1.2.14",
"underscore": "~1.4.4",
"rjs": "~2.10.0",
"jade": "~0.29.0",
"async": "~0.2.7"
}
もちろん、これは依存関係を更新する際の鈍いハンマーです。 あなたがおっしゃるように、プロジェクトが空っぽで、何も壊れない場合はいいのですが。
一方で、より成熟したプロジェクトで作業している場合は、アップグレードする前に依存関係に壊れるような変更がないかどうかを確認したいと思うでしょう。
どのモジュールが古くなっているかを確認するには、npm outdated
を実行します。 インストールされている依存関係の中で、より新しいバージョンが利用可能なものがリストアップされます。
npm-check-updates
は、すべての依存関係にある最新のバージョンで package.json を自動的に調整するユーティリティです。
最新のバージョンで自動的に調整するユーティリティです。
https://www.npmjs.org/package/npm-check-updates を参照してください。
$ npm install -g npm-check-updates
$ ncu -u
$ npm install
[EDIT] 最新版の npm
があれば、もう少し邪魔にならない (グローバルインストールを避ける) 方法があります。
$ npx npm-check-updates -u
$ npm install