(関連し、非常に似ていますが、この質問と同じではありません。私の質問はnpm install
、一般的にdepsを最新に保つというトピックを通じて、node_modulesが失われ、再フェッチされるシナリオを探しているためです。)
A をバージョン a1 のアドオンとし、B をバージョン b1 のそのアドオンの bower 依存関係とする。アドオンは、次のようなデフォルトのブループリントを介して bower パッケージをインストールします
afterInstall: function() {
// b1 is the version.
return this.addBowerPackageToProject('B', 'b1');
}
ここで、C を A を消費するアプリケーションとします。ember install A
bower パッケージは実際に C にインストールされています。ここまでは問題ありません。ここで、Aがバージョン a2 に更新され、バージョン b2 の B が含まれます。Cでは、
rm -R node_modules
npm cache clean
npm install
(node_modules なしで C をチェックアウトし、npm install を実行すると、bower.json が古い場合、同様の問題が発生します) A.a2 がフェッチされます。
- A.a2 のデフォルトのブループリントを実行して、C に B.b2 もインストールさせるべきですか? (これはここで尋ねられた実際の質問です)
ブループリントが手動で実行される場合、B.b2 は実際にプロンプトが表示されます。つまり、プロジェクトにバウアー コンフリクトがあることがわかり、それを解決する方法を尋ねられます。
今試してみましたが、うまくいきません。npm に postinstall スクリプトを指定しても ( ember g testaddon
)、どちらも機能しません (npm は異なる順序でパッケージをインストールしようとし、postinstall スクリプトの実行時に ember-cli がインストールされないため)。
とにかく手動でチェックする必要がある場合、ブループリントがバウアーの依存関係を伝播するのに何のメリットがありますか? 私はこれを間違って理解していますか?これは意図した動作ですか?