web-dev-qa-db-ja.com

package.jsonへの依存関係のみを保存するためにnpmインストールする方法は?

仮想マシンのプロビジョニングプロセスの一部として使用されるpackage.jsonに依存関係を追加しています。そのため、プロビジョニング担当者がVM内でモジュールをインストールするため、実際にモジュールをローカルにインストールする必要はありません。したがって、次のことを行う方法はありますか?

npm install --save <module>

onlyは、実際にモジュールをダウンロードしたり、package.jsonフォルダーを作成したりせずに、node_modulesに最新バージョンのモジュールの依存関係を作成しますか?

--dry-runフォルダーは作成されませんが、node_modulesへの書き込みも行われないため、package.jsonオプションは近いです。

今のところ、VMを再プロビジョニングする前にパッケージを更新する必要があるたびに、次のことを手動で行っています。

rm -rf node_modules

他の理由としては、テザリングなどの低帯域幅の状況でpackage.jsonファイルを簡単に構築できることが挙げられます。

26
Soviut

私が知っているnpmでそれを行う方法はありません。

これを行うための2つのnpmパッケージがあります。どちらも使用したことはありませんが、試してみる価値があるかもしれません。

お役に立てれば!

4
RyanZim

興味深い組み合わせ--package-lock-only with --no-package-lockこれを行うようです

npm install --package-lock-only --no-package-lock PACKAGE

これはpackage-lock.jsonファイルを作成または更新しません。 package.jsonにのみエントリを追加します

更新

これは実際にはバグでしたが、npm 6.9.0で修正されました

https://github.com/npm/cli/pull/146

https://npm.community/t/release-npm-6-9-0/5911

3
Epeli

解決策を探していました。見つからない場合は、インストールプロセスをスキップして、package.jsonファイルに依存関係(最新バージョン)を追加するスクリプトを作成しました。

https://www.npmjs.com/package/npm-add-dependencies

インストール

$ npm install npm-add-dependencies -g

使用法

ターゲットpackage.jsonがあるディレクトリに移動して実行します

$ npm-add-dependencies <dependencies> [target]

ここで、dependenciesは依存関係のリストをスペースで割ったものであり、targetは次のいずれかです。

--dev for devDependencies

--peer for peerDependencies

--bundled for bundledDependencies

--optional for optionalDependencies

target引数が渡されない場合、依存関係はdependenciesに書き込まれます。

他の人を助けることができたら嬉しいです。

2
Arfeo

npm install --save packagenameその後npm uninstall packagename(--saveフラグなし)はこれを実現しますが、空のnode_modulesフォルダーが作成されます

0
seedsseedsseeds