5

私は NPM パッケージ (パッケージ A) を持っています。これは、それ自体の最新の安定したバージョンでコンパイルされます。これは、パッケージ A に依存する中間の Grunt タスク (パッケージ B) を介して行われます。したがって、依存チェーンは次のようになります。

パッケージ A -> パッケージ B (としてdevDependency) -> パッケージ A (としてdependency)

ただし、パッケージ A が を介してインストールされているnpm install場合、NPM はパッケージ A をパッケージ B の依存関係としてインストールしdevDependencyません。とにかく子パッケージ A にインストールされます。

子パッケージ A をインストールするための、ハックが最も少ない/推奨される方法は何ですか? postinstall私の最初の解決策は、単純に実行するスクリプトを追加することでしたcd node_modules/package-B && npm install package-Aが、の CWD がpostinstall常にパッケージのルート ディレクトリであるとは限らないため、これは機能しません。

4

2 に答える 2

4

そのようなタスクのためにjsファイルを作成して実行するのはどうですか?

var spawn = require("child_process").spawn;
spawn("npm", [ "install", "package-A" ], {
  cwd: process.cwd() + "/node_modules/package-B/",
  env: process.env
});

これが機能するかどうかはわかりませんが、それを使ってもっと多くのことをしたくなるかもしれません ;)

于 2013-07-04T19:48:06.750 に答える