2

所以我知道如何在 ES6 中要求和导出模块。但是对于像Aurelia这样的框架,文档说你需要aurelia这样:

import {LogManager} from 'aurelia-framework';

我是否必须将一个名为的 JS 文件放置aurelia-framework在我从中执行它的 JS 文件所在的文件夹中,或者该import函数的工作方式是否require类似于 NodeJS/CommonJS 中的函数?

4

2 回答 2

3

根据这篇文章ES6 模块规范仅处理加载文件路径中存在的模块。下载这些文件(通过 NPM 或其他方式)超出了ECMAScript 6 模块规范的范围。规范中没有提及支持 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
于 2015-02-08T19:28:47.810 回答
0

使用Aurelia ,您可以使用 jspm安装依赖库。你可以在这里看到一个例子。jspm 将为您获取软件包并将它们放入您项目的子文件夹中。jspm 使用索引(存储在 config.js 中)来了解文件的位置(类似于 requirejs,但适用于 amd、commonjs 和 es6 模块)。

还有一个将 aurelia 库与 requirejs amd 加载器一起使用的示例。此示例使用由 r.js 生成的 aurelia 库包,如下所示

于 2015-02-10T13:40:10.790 回答