2015-02-07 46 views
2

所以我知道如何在ES6中需要和導出模塊。但是,對於像Aurelia框架,文檔說,你需要aurelia像這樣:EcmaScript 6模塊需要,它是如何工作的?

import {LogManager} from 'aurelia-framework'; 

我一定要地方JS文件我是從執行所在的文件夾名爲aurelia-framework JS文件,或不功能類似於NodeJS/CommonJS中的require函數嗎?

回答

3

根據this article ES6模塊規範只處理加載文件路徑中存在的模塊。下載這些文件(通過NPM或其他方式)不在ECMAScript 6 modules spec的範圍之內。在關於支持NPM包包括規範(下至/,一個目錄遍歷目錄結構在一個時間,找了package.json文件,然後將node_modules目錄下package.json找到文件內搜索)什麼也不說。因此,儘管import語法與commonJS樣式類似,但不包括在node_modules目錄中查找模塊的全部魔力。

因此,對於您的示例,aurelia-framework必須是文件系統中的某個JavaScript文件,並且應包含exports語句。

import {LogManager} from 'aurelia-framework'; // ./aurelia-framework.js 
import {LogManager} from '../libs/aurelia-framework'; // ../libs/aurelia-framework.js 
0

Aurelia,您可以安裝依賴庫using jspm。你可以看到an example of that here。 jspm將爲您獲取這些軟件包並將它們帶入您項目的子文件夾中。 jspm使用索引(存儲在config.js中)來知道文件的位置(類似於requirejs,但適用於amd,commonjs和es6模塊)。

還有an example使用帶有requirejs amd loader的aurelia庫。這個例子使用由r.js生成的一束aurelia文庫as shown here