43

devDependenciesテスト スイートを実行し、本番環境の依存関係を .NET でロックダウンするために必要なものがたくさんありますnpm shrinkwrap。問題は、 を実行するnpm installと、実稼働依存関係のみがインストールされることです。 をインストールするdevDependenciesには、 npm-shrinkwrap.json を削除して再度実行する必要があります。

現在は、shrinkwrap にも含まdevDependenciesれている場合、必要のない本番環境にインストールされます。通常の依存関係のみを強制的にインストールするコマンドライン引数がいくつかあるはずですか?

4

5 に答える 5

50

2016 年 9 月:

他の人も言及しているように、npm v3.10.8から始まるシュリンクラップ機能を強化するための大きな努力がありました。

thisのおかげdevDependenciesで、製品の依存関係のみをインストールする間、ロックしたままにすることが可能になります:

npm shrinkwrap --dev
npm install --only=prod

2013年の回答:

NPM docsに記載されているように:

npm shrinkwrap本番環境で使用するために依存関係をロックダウンすることを目的としているため、npm Shrinkwrap を実行するときにフラグdevDependenciesを明示的に設定しない限り、含まれません。--devインストール済みdevDependenciesが除外されている場合、npm は警告を出力します。デフォルトでモジュールと一緒にインストールしたい場合は、代わりに依存関係に追加することを検討してください。

基本的に、またはすべての deps をロックダウンするか、本番 deps のみをロックダウンします。

シュリンクラップ機能を実行していnpm install --devないかnpm install --force、超越することさえできません。

于 2013-07-09T15:31:01.627 に答える
1

編集2016/09/13

npm v3.10.8 をテストしたところ、この機能が期待どおりに動作するようになりました。devDependencies をシュリンクラップし、デプロイ時に prod 依存関係のみをインストールできます。


この機能はすぐに期待どおりに機能するようになるはずです。この github issueによると、多くの人が同じ問題に遭遇しており、このプル リクエストによると、次のリリース (2016-09-08 予定) に含まれる予定です。

プル リクエストをマージしたら、次の作業を行うだけです。

npm i --only=prod
于 2016-08-31T14:23:36.413 に答える
0

これは で修正されていnpm 3.10.8ます。https://github.com/npm/npm/releases/tag/v3.10.8npm install --productionによって作成されたシュリンクラップに dev deps をインストールしないでnpm shrinkwrap --devください。

于 2016-09-15T21:22:20.953 に答える