所以我知道如何在ES6中需要和導出模塊。但是,對於像Aurelia框架,文檔說,你需要aurelia
像這樣:EcmaScript 6模塊需要,它是如何工作的?
import {LogManager} from 'aurelia-framework';
我一定要地方JS文件我是從執行所在的文件夾名爲aurelia-framework
JS文件,或不功能類似於NodeJS/CommonJS中的require
函數嗎?
所以我知道如何在ES6中需要和導出模塊。但是,對於像Aurelia框架,文檔說,你需要aurelia
像這樣:EcmaScript 6模塊需要,它是如何工作的?
import {LogManager} from 'aurelia-framework';
我一定要地方JS文件我是從執行所在的文件夾名爲aurelia-framework
JS文件,或不功能類似於NodeJS/CommonJS中的require
函數嗎?
根據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
與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