【问题标题】:EcmaScript 6 module requiring, how does it work?需要 EcmaScript 6 模块,它是如何工作的?
【发布时间】:2015-04-07 21:27:40
【问题描述】:

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

import {LogManager} from 'aurelia-framework';

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

【问题讨论】:

    标签: javascript node.js ecmascript-6 aurelia commonjs


    【解决方案1】:

    根据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
    

    【讨论】:

      【解决方案2】:

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

      还有an example 将 aurelia 库与 requirejs amd 加载器一起使用。此示例使用由 r.js as shown here 生成的 aurelia 库包

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-24
        • 2016-01-03
        • 2023-03-13
        • 1970-01-01
        • 2016-01-10
        • 2019-07-24
        • 1970-01-01
        • 2015-07-17
        相关资源
        最近更新 更多