この記事では主に、知っておくべきいくつかの種類の npm 依存関係パッケージ管理について説明します。npm は、node.js のパッケージ マネージャーであり、必要な方はサンプル コードを通じて詳しく説明します。参考までに、以下のエディタで学習してみましょう。
npm は現在、次のタイプの依存関係パッケージ管理をサポートしています。
"devDependencies": { "fw2": "^0.3.2", "grunt": "^1.0.1", "webpack": "^3.6.0" }, "dependencies": { "gulp": "^3.9.1", "hello-else": "^1.0.0" }, "peerDependencies": { }, "optionalDependencies": { }, "bundledDependencies": []
アプリケーションの依存関係、またはビジネスの依存関係、これが最も重要です。よく使用される依存関係パッケージ管理オブジェクト!これは、アプリケーションが依存する外部パッケージを指定するために使用されます。これらの依存関係は、アプリケーションのリリース後の通常の実行に必要ですが、テストまたはローカル パッケージ化中に使用されるパッケージは含まれません。次のコマンドを使用してインストールできます。
npm install packageName --save
{ "dependencies" :{ "foo" : "1.0.0 - 2.9999.9999", // 指定版本范围 "bar" : ">=1.0.2 <2.1.2", "baz" : ">1.0.2 <=2.3.4", "boo" : "2.0.1", // 指定版本 "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0", "asd" : "http://asdf.com/asdf.tar.gz", // 指定包地址 "til" : "~1.2", // 最近可用版本 "elf" : "~1.2.3", "elf" : "^1.2.3", // 兼容版本 "two" : "2.x", // 2.1、2.2、...、2.9皆可用 "thr" : "*", // 任意版本 "thr2": "", // 任意版本 "lat" : "latest", // 当前最新 "dyl" : "file:../dyl", // 本地地址 "xyz" : "git+ssh://git@github.com:npm/npm.git#v1.0.27", // git 地址 "fir" : "git+ssh://git@github.com:npm/npm#semver:^5.0", "wdy" : "git+https://isaacs@github.com/npm/npm.git", "xxy" : "git://github.com/npm/npm.git#v1.0.27", } }
devDependency
npm install packageName --save-dev
{ "name": "ethopia-waza", "description": "a delightfully fruity coffee varietal", "version": "1.2.3", "devDependencies": { "coffee-script": "~1.6.3" }, "scripts": { "prepare": "coffee -o lib/ -c src/waza.coffee" }, "main": "lib/waza.js" }
peerDependency
同等の依存関係、またはピア依存関係は、現在のパッケージ (つまり、作成したパッケージ) と互換性のあるホストのバージョンを指定するために使用されます。どのように理解すればよいでしょうか? 想像してみてください。gulp プラグインを作成しますが、gulp には複数のメイン バージョンがあり、現時点では、peerDependency を使用して次のように指定できます。 、peerDependency は、プラグインのどのホスト バージョンをインストールする必要があるかをユーザーに明確に伝えます。
通常、プロジェクト内で 1 つのホストの多数のプラグイン (gulp など) を使用します。それらの間にホストの互換性がない場合、npm install の実行時に cli は次のようなエラー メッセージをスローして通知します。
{ "name": "gulp-my-plugin", "version": "0.0.1", "peerDependencies": { "gulp": "3.x" } }
npm ERR! peerinvalid The package gulp does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer gulp-cli-config@0.1.3 wants gulp@~3.1.9 npm ERR! peerinvalid Peer gulp-cli-users@0.1.4 wants gulp@~2.3.0
npm 1 と npm 2 が実行されることに注意してください。同じ依存関係を自動的にインストールすると、npm 3 は自動的にインストールされなくなり、警告が生成されます。 package.json ファイルに依存関係を手動で追加すると解決できます。
optionalDependency インストールが失敗した場合でもプロジェクトが実行できる依存パッケージがいくつかある場合、または npm を実行し続けたい場合は、optionalDependency を使用できます。また、optionalDependency は依存関係内の同名の依存関係パッケージを上書きするため、両方の場所に記述しないでください。
├── gulp-my-plugin@0.0.1 └── gulp@3.9.1
try { var foo = require('foo') var fooVersion = require('foo/package.json').version } catch (er) { foo = null } if ( notGoodFooVersion(fooVersion) ) { foo = null } // .. then later in your program .. if (foo) { foo.doFooThings() }
node.js での npm と webpack の設定方法の詳細な説明
以上がいくつかの npm 依存関係パッケージ管理の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。