【问题标题】:Ember - Sharing code between two EAK projectsEmber - 在两个 EAK 项目之间共享代码
【发布时间】:2014-02-25 00:30:35
【问题描述】:
我有两个 emberjs 项目都使用 EAK 作为基本项目结构。我想在这两个项目之间共享一些通用代码:模板、视图(和相关的样式表)、一些实用程序类等。但我想弄清楚一些疑问:
- 我应该把通用代码放到一个单独的 eak 项目中吗?
- 我应该使用一些包管理器(也许是凉亭)来管理项目
依赖?
- EAK 使用其自定义解析器查找特定下的 ember 类
目录(视图,控制器等),所以我应该复制通用代码
进入这些目录或只是扩展解析器来编写我自己的
找到逻辑?
任何朝着正确方向的推动都将是巨大的帮助!谢谢。
【问题讨论】:
标签:
javascript
ember.js
ember-app-kit
【解决方案1】:
扩展已解决以添加目录作为故障备份是完美的选择。这是一个示例代码:
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 以获得故障回复。
希望对你有帮助
【解决方案2】:
我们也有类似的情况。我们用 Yeoman 搭建了脚手架,这意味着我们对依赖有凉亭,对构建有抱怨。我不确定这如何适用于 EAK,因此请谨慎对待。
我们的决定是将通用代码保留在单独的项目中。处理所有依赖项有点复杂,最后它涉及做一些繁重的构建工作,以确保我们需要的所有东西(不多或少)在作为依赖项添加时从公共项目中包含在内通过凉亭到子项目。像 Bower 这样的依赖管理器至关重要,因为您希望能够在处理其中的新功能时将您的子项目(消费者等)固定到特定版本的公共代码。