所以我知道如何在ES6中要求和导出模块。但对于像Aurelia这样的框架,文档说您需要aurelia
,如下所示:
import {LogManager} from 'aurelia-framework';
我是否必须将一个名为aurelia-framework
的JS文件放在我执行它的JS文件所在的文件夹中,或者import
函数是否与{{1}类似? NodeJS / CommonJS中的函数?
答案 0 :(得分: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
答案 1 :(得分:0)
使用Aurelia,您可以安装依赖库using jspm。你可以看到an example of that here。 jspm将为您获取包并将它们带入项目的子文件夹中。 jspm使用索引(存储在config.js中)来知道文件的位置(类似于requirejs,但适用于amd,commonjs和es6模块)。
还有an example使用带有requirejs amd加载器的aurelia库。此示例使用由r.js as shown here
生成的一组aurelia库