Ember Addons和bower依赖版本

时间:2016-02-04 15:27:04

标签: ember.js bower ember-cli ember-cli-addons

(相关的,非常相似,但与this question不一样,因为我的问题是寻找通过npm install丢失和重新获取node_modules的场景以及保持deps当前的主题总的来说。)

让A成为版本a1中的插件,让B成为版本b1中该插件的bower依赖项。插件通过默认蓝图(如

)安装其bower包
afterInstall: function() {
    // b1 is the version.
    return this.addBowerPackageToProject('B', 'b1');
}

现在让C成为消耗A的应用程序。当使用ember install A

安装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(ember g testaddon)指定一个postinstall脚本,它也不起作用(因为npm尝试以不同的顺序安装软件包,并且在安装后脚本时没有安装ember-cli运行)。

如果必须手动检查 ,那么让蓝图传播bower依赖项有什么用呢?我错误地理解了这个吗?这是预期的行为吗?

1 个答案:

答案 0 :(得分:1)

我完全同意。 ember-cli目前在升级或卸载npm软件包时什么都不做,这对插件来说是一个问题。插件应该能够指定在版本升级和卸载时运行的蓝图。或者,应该有一个'ember upgrade'和'ember uninstall'命令来运行这些蓝图(如果有的话)。

然后,插件可以在升级蓝图中导致C安装B.b2(如果尚未安装)。

任何想要正式提出此建议的人,这样做的方式是在https://github.com/ember-cli/rfcs

打开拉取请求