2017-01-26 27 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/