(相关,非常相似,但与这个问题不同,因为我的问题是寻找 node_modules 丢失并重新获取的场景,以及npm install
保持 deps 最新的主题。)
让 A 成为版本 a1 中的插件,让 B 成为版本 b1 中该插件的凉亭依赖项。插件通过默认蓝图安装其 bower 包,例如
afterInstall: function() {
// b1 is the version.
return this.addBowerPackageToProject('B', 'b1');
}
现在让 C 成为使用 A 的应用程序。当 A 安装时使用ember install A
bower 包实际上是安装在 C 中的。到这里为止,一切都很好。现在A更新到a2版本,包括b2版本中的B。在 C 中,
rm -R node_modules
npm cache clean
npm install
(如果 bower.json 是旧的,检查没有 node_modules 的 C 并运行 npm install 会遇到类似的问题)将获取 A.a2。
- A.a2 的默认蓝图是否应该运行并导致 C 也安装 B.b2?(这是这里提出的实际问题)
如果蓝图是手动运行的,B.b2 实际上会得到提示,也就是说,您会看到项目现在有凉亭冲突,并被询问如何解决它。
我现在试了一下,不行。如果我为 npm ( ember g testaddon
) 指定安装后脚本,它也不起作用(因为 npm 尝试以不同的顺序安装软件包,并且在安装后脚本运行时未安装 ember-cli)。
如果必须手动检查蓝图,那么让蓝图传播凉亭依赖关系有什么好处?我理解错了吗?这是预期的行为吗?