web-dev-qa-db-ja.com

依存関係なしでnpmパッケージをインストールするオプションはありますか?

複数の依存関係を持つnpmパッケージを変更しようとしています。など npm install -g .の実行には時間がかかります。 packages.jsonから依存関係を削除する以外に他のオプションはありますか?

21
Justin Dearing

-no-optionalオプションがこのドキュメントに従って実装されました https://docs.npmjs.com/cli/install =:

The --no-optional argument will prevent optional dependencies from being installed.
18
jurevert

the docs を見ると、--no-optionalスイッチ以外のオプションがないようです。

未テスト/未確認

これは、SOタイトル付きQ&A: npm install installs all project of my network、ifたとえネットワークがすでにインストールされているか、キャッシュから利用可能であっても は、 --skip-installedスイッチがありますが、ドキュメントではこのスイッチを参照していません。

7
slm

node_moduleを自分で開発している場合は、npm installsに時間を費やすのではなく、npm linkを使用してください。

つまり、npmが所有するグローバルフォルダーのモジュールフォルダーへのシンボリックリンクを作成し、アプリフォルダーでnpmにそのシンボリックリンクフォルダーを使用するように要求します。

これにより、モジュールフォルダーで行った変更がアプリにすぐに反映されます。

主な手順は次のとおりです(以下にリンクされているチュートリアルからコピーされています。重要な問題については、チュートリアルを必ずお読みください):

  1. src/my_moduleに移動
  2. npm link」を実行します。これにより、グローバルフォルダーからsrc/my_moduleフォルダーへのシンボリックリンクが作成されます。
  3. src/my_appに移動
  4. npm link my_moduleを実行します。これにより、この特定のプロジェクトのnode_modules/my_moduleがグローバルフォルダーにリンクされ、requiremy_moduleを探して呼び出し、開発フォルダーsrc/my_moduleからロードします。

このチュートリアルを参照してください: http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears そしてnpm linkの公式ドキュメント:- https://docs.npmjs.com/cli/link

7
marmor

この機能は2010年にリクエストされましたが、不幸にも無視されて閉じられました: https://github.com/npm/npm/issues/34

私はたくさんのオプションを試しましたが、最終的には非常に単純な解決策を見つけました-doint npm installの前にpackage.jsonを別の名前に変更し、インストールが完了した後で元に戻します。

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
4