すべてのノードの依存関係を最新バージョンに更新します

package.jsonファイルに保存されているすべてのnpm依存関係を、利用可能な最新バージョンに更新するにはどうすればよいですか?

を使用してパッケージをインストールする場合npm install <packagename>、パッケージの利用可能な最新バージョンがダウンロードされ、node_modulesフォルダ、および対応するエントリがに追加されますpackage.jsonそしてpackage-lock.json現在のフォルダに存在するファイル。

npm依存関係を計算し、それらの利用可能な最新バージョンもインストールします。

あなたがインストールするとしましょうcowsay、牛に言わせることができるクールなコマンドラインツール物事

あなたがnpm install cowsay、このエントリはに追加されますpackage.jsonファイル:

{
  "dependencies": {
    "cowsay": "^1.3.1"
  }
}

これはの抜粋ですpackage-lock.json、わかりやすくするためにネストされた依存関係を削除しました。

{
  "requires": true,
  "lockfileVersion": 1,
  "dependencies": {
    "cowsay": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz",
      "integrity": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==",
      "requires": {
        "get-stdin": "^5.0.1",
        "optimist": "~0.6.1",
        "string-width": "~2.1.1",
        "strip-eof": "^1.0.0"
      }
    }
  }
}

これらの2つのファイルは、バージョンをインストールしたことを示しています1.3.1カウセイの、そして更新のための私たちのルールは^1.3.1npmのバージョン管理ルールnpmがパッチおよびマイナーリリースに更新できることを意味します。1.3.21.4.0等々。

ただし、互換性を損なうメジャーバージョンの変更は対象外です。つまり、この例では、2.0以上。

新しいマイナーリリースまたはパッチリリースがあり、次のように入力した場合npm update、インストールされているバージョンが更新され、package-lock.json新しいバージョンで熱心に満たされたファイル。

package.json変更されません。

パッケージの新しいリリースを見つけるには、次を実行しますnpm outdated

これは、私がしばらく更新しなかった1つのリポジトリ内のいくつかの古いパッケージのリストです。

それらのアップデートのいくつかはメジャーリリースです。ランニングnpm updateそれらのバージョンは更新されません。メジャーリリースは(定義上)重大な変更を導入するため、この方法で更新されることはありません。npmあなたのトラブルを救いたい。

すべてのパッケージを新しいメジャーバージョンに更新するには、npm-check-updatesグローバルにパッケージ化:

npm install -g npm-check-updates

次にそれを実行します:

ncu -u

これにより、のすべてのバージョンヒントがアップグレードされます。package.jsonファイル、dependenciesそしてdevDependencies、したがって、npmは新しいメジャーバージョンをインストールできます。

これで、更新を実行する準備ができました。

npm update

なしでプロジェクトをダウンロードした場合node_modules依存関係があり、最初に光沢のある新しいバージョンをインストールしたい場合は、実行するだけです

npm install

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: