複数の依存関係を持つnpmパッケージを変更しようとしています。だからnpm install -g .
実行するのに長い時間がかかります。 packages.jsonから依存関係を削除する以外に他のオプションはありますか?
答え1
--オプションなし次に、この資料に従ってオプションを実装してください。https://docs.npmjs.com/cli/install:
The --no-optional argument will prevent optional dependencies from being installed.
答え2
あなた自身を開発する場合は、node_module
sに時間を無駄にしないでnpm install
くださいnpm link
。
つまり、npmが所有するグローバルフォルダにモジュールフォルダを指すシンボリックリンクを作成し、アプリケーションフォルダでnpmにそのシンボリックリンクフォルダを使用するように要求します。
これにより、モジュールフォルダで行った変更をすぐにアプリケーションに反映できます。
主な手順は次のとおりです(以下のリンクされたチュートリアルからコピーしました。重要な問題を理解するためにチュートリアルを読んでください)。
- CD
src/my_module
- 走る"
npm link
"。これにより、グローバルフォルダからこのフォルダへのシンボリックリンクが作成されますsrc/my_module
。 - CD
src/my_app
- ランニング
npm link my_module
。これはnode_modules/my_module
この特定のプロジェクトのグローバルフォルダへのリンクであるため、ルックアップrequire
呼び出しはmy_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
答え3
この機能は2010年にリクエストされましたが、残念ながら無視して終了しました。https://github.com/npm/npm/issues/340
私は多くのオプションを試してみましたが、ついに非常に簡単な解決策を見つけました。 npmインストールを実行する前に、package.jsonの名前を別の名前に変更し、インストールが完了したらそれを復元します。
mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
答え4
裏返す文書スイッチ以外には代替手段がないようです--no-optional
。
テストされていない/確認されていません
この質問と回答は次のとおりです。npm install
すでにインストールされている場合、またはキャッシュで利用可能な場合でも、ネットワーク経由でプロジェクト内のすべての依存関係をインストールします。スイッチがあるようです--skip-installed
。ただし、ドキュメントにはこのスイッチは記載されていません。