2016-10-04 50 views
0

我想將我的奧裏利亞自定義元素之一,它自己的Git回購,這樣我可以npm install它在多個項目中使用它。如何創建ES6插件(沒有構建系統)

我希望是簡單地提交一個JS文件中的元素組成的(它使用@inlineView)(用package.json一起),並簡單地將其導入Aurelia路上,所以我所做的:

  1. $ npm install powerbuoy/my-plugin-name
  2. 新增my-plugin-name向依賴性列表中aurelia.json
  3. 新增use.plugin('my-plugin-name')main.js(我也試圖與globalResources()feature())(和我也試過../node_modules/my-plugin-name/index)。

似乎沒有任何工作。

它是正確的,我的插件代碼必須是ES6?它是否必須在之前經過編譯我將它包含在我的項目中?如果這是正確的,有人可以解釋爲什麼這是必要的,如果有解決方法?

這將是容易得多,只是一個文件移動到它自己的回購,而不是建立一個全新的骨架應用程序的一個文件。

回答

2

你的插件可以ES2015,大部分。主要的例外是,您不能使用import模塊語法,因爲任何瀏覽器都不支持。這也意味着您的插件使用的export class語法不受支持。

所以,在最起碼,你需要transpile你的插件CommonJS的或AMD模塊格式。如果您僅使用支持ES2015的瀏覽器,並且您只使用瀏覽器本機支持的功能,那麼您可以原生地運行ES2015代碼,除了上面提到的模塊。

+0

好的,所以沒有辦法讓我的Aurelia項目在使用前使用插件transpile呢?就好像它和我所有的其他代碼都在同一個目錄下。我幾乎想要使用Git Submodules來解決這個問題(因爲插件只是我的普通代碼的一部分,並且默認包含在它的包中) – powerbuoy

+0

通常,不,你不需要消費項目處理一個插件的轉譯。話雖如此,你應該能夠在'node_modules'或'jspm_packages'文件夾中將其轉錄。這不是一件容易的事,因爲你試圖做一些工具,無論是Aurelia CLI,Webpack還是JSPM/Gulp,都不容易。 厭惡分發插件預先轉譯的原因是什麼?您知道,您可以分發以任何格式預先轉換的插件,並且消費者可以選擇要使用的插件,對嗎? –

+0

是的,最大的原因是我不想維護另一個_建立系統。我不想讓我的一個文件,〜50 loc插件20文件20+依賴巨獸:PI希望它不會僅僅將'elements/my-custom-element.js'移動到node_modules/。我想我會調查傳輸文件所需的最低限度。插件框架包含了太多適合我的喜好。 – powerbuoy