1

(関連し、非常に似ていますが、この質問と同じではありません。私の質問は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 がインストールされないため)。

とにかく手動でチェックする必要がある場合、ブループリントがバウアーの依存関係を伝播するのに何のメリットがありますか? 私はこれを間違って理解していますか?これは意図した動作ですか?

4

1 に答える 1