我有两个emberjs项目都使用EAK作为基本的项目结构。我想在这两个项目之间共享一些通用代码:模板,视图(以及相关的样式表),一些实用程序类等。但是我想弄清楚一些疑问:
- 我应该将公共代码放入单独的 eak 项目中吗?
- 我应该使用一些包管理器(也许是鲍尔)来管理项目屬地?
- EAK 使用其自定义解析程序查找特定下的 ember 类目录(视图,控制器等),所以我应该复制公共代码到这些目录中,或者只是扩展解析器来编写我自己的解析器寻找逻辑?
任何朝着正确方向的推动都将是一个巨大的帮助!谢谢。
完美地找到了扩展已解决的添加目录作为错误回退。下面是一个示例代码:
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 一起搭建了脚手架,这意味着我们有用于依赖的 bower 和用于构建的咕噜声。我不确定这如何适用于 EAK,所以请持保留态度。
我们的决定是将通用代码保留在一个单独的项目中。处理所有依赖项变得有点复杂,最后它涉及做一些繁琐的构建工作,以确保当它作为依赖项添加到子项目时,我们需要的所有内容(仅多或少)都包含在公共项目中通过 bower 添加到子项目中。像 Bower 这样的依赖管理器至关重要,因为您希望能够在处理其中的新功能时将子项目(使用者等)固定到公共代码的特定版本。