2017-01-26 30 views
3

我正在开发一个Ember-JS应用程序,其中包含大量执行各种UX和样式任务的JavaScript。Ember v。2.x:手表供应商文件夹

由于这些任务超出了MVC逻辑的范围,所以我将它们放入了我放入供应商映射中的模块中。

将它们放到Vendor文件夹中并不意味着我已经完成了对这些文件的调整,但为了测试它们,我需要一遍又一遍地重新启动ember-server。

如何让Ember在我的供应商文件夹中观看这些JS文件,并在更改它们时重新编译它们?

下页答案为灰烬V1,但并不适用于灰烬2.0:https://discuss.emberjs.com/t/solved-watch-addon-directory-for-changes/6410/4

我也尝试创建一个插件,但烬(CLI)的回答着:“你不能使用在一个ember-cli项目中使用addon命令。“

+0

我的建议是,你不要把它们放到'vendor'文件夹中。如果你编写代码,把它放到'app'文件夹中。你可以创建一个'custom'文件夹,或者使用'utils'文件夹。这也将给你带来巴贝尔变换的好处。 'vendor'通常用于'npm'或'bower'所不能获得的外部代码。 – Lux

+0

谢谢。那也不适合。我马上得到一个Build Error。我可能会因为不同的Ember版本而感到困惑。以下链接似乎说它不能完成。 https://github.com/ember-cli/ember-cli/issues/4717 – Ideogram

+0

@Lux你会发表你的评论作为答案?然后我可以将其标记为答案。 – Ideogram

回答

3

我花了一段时间来连接的散布在互联网信息的所有的作品,但使用@Lux的anwers,这是我发现了什么。

1)使用烬-CLI,我产生一个 '实用工具'(因此utils的文件夹):

ember g util grid-layout 

这给你一个JS文件“应用程序/ utils的/网layout.js “模板填写。在我的情况下,这是一个问题...

2)将我之前创建的函数的主体复制粘贴到ember-cli想出的函数的主体中:

export default function gridLayout(tree) { 
… 
return tree 
} 

3)在控制器中导入函数,在我的例子中是controllers/index.js。我发现了如何做到这一点,有和没有大括号,并使用该模块文件不同的路径不同的例子,但是这是什么使得它为我工作:

import Ember from "ember"; 
import gridLayout from "../utils/grid-layout"; 

export default Ember.Controller.extend({… 

链接:

https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Statements/export

https://blog.abuiles.com/blog/2014/10/03/working-with-javascript-plugins-in-ember-cli/