我有两个 emberjs 项目都使用 EAK 作为基本项目结构。我想在这两个项目之间共享一些通用代码:模板、视图(和相关样式表)、一些实用程序类等。但是我想弄清楚一些疑问:
- 我应该将通用代码放入单独的 eak 项目中吗?
- 我应该使用一些包管理器(也许是凉亭)来管理项目依赖关系吗?
- EAK 使用其自定义解析器在特定目录(视图、控制器等)下查找 ember 类,所以我应该将公共代码复制到这些目录中还是只是扩展解析器以编写我自己的查找逻辑?
任何朝着正确方向的推动都将是巨大的帮助!谢谢你。
我有两个 emberjs 项目都使用 EAK 作为基本项目结构。我想在这两个项目之间共享一些通用代码:模板、视图(和相关样式表)、一些实用程序类等。但是我想弄清楚一些疑问:
任何朝着正确方向的推动都将是巨大的帮助!谢谢你。
完美地发现扩展已解决以添加目录作为故障备份。这是一个示例代码:
var appPath = "apps/ordering/";
var resolver = Ember.DefaultResolver.extend({
resolveTemplate: function (parsedName) {
parsedName.fullNameWithoutType = appPath + parsedName.fullNameWithoutType;
# fallback to raw templates (used for compatibility with non-Ember/emblem templates)
return this._super(parsedName) ||
Ember.TEMPLATES[parsedName.fullNameWithoutType + ".raw"]
}
});
本质上,您可以this._super
以正确的顺序使用不同的路径进行调用以获得故障回复。
希望这可以帮助
我们也有类似的情况。我们用 Yeoman 搭建了脚手架,这意味着我们对依赖有凉亭,对构建有抱怨。我不确定这如何适用于 EAK,因此请谨慎对待。
我们的决定是将通用代码保留在一个单独的项目中。处理所有依赖项有点复杂,最后它涉及做一些繁重的构建工作,以确保我们需要的一切(不多或少)在作为依赖项添加时从公共项目中包含在内通过凉亭到子项目。像 Bower 这样的依赖管理器至关重要,因为您希望能够在处理其中的新功能时将您的子项目(消费者等)固定到特定版本的公共代码。