Questions tagged «es6-modules»

ECMAScript 6(2015)中引入了JavaScript的标准模块系统。

1
如何在Javascript中为默认导入添加别名?
使用ES6模块,我知道我可以为命名导入别名 import { foo as bar } from 'my-module'; 我知道我可以导入默认导入 import defaultMember from 'my-module'; 我想为默认导入添加别名,我以为以下内容可以工作 import defaultMember as alias from 'my-module'; 但这会导致解析(语法)错误。 我如何(或可以?)为默认导入添加别名?

1
NodeJS计划支持导入/导出es6(es2015)模块
我一直在互联网上寻找有关此问题的明确答案。 当前,NodeJS仅使用CommonJS语法加载模块,如果您确实要使用标准的ES2015模块语法,则必须事先对其进行转换,或者在运行时使用外部模块加载器。 目前,我不太愿意使用这两种方法,NodeJS维护人员是否计划支持ES2015模块?我完全没有发现任何提示。 目前,NodeJS 6.x声称支持96%的ES2015功能,但没有任何模块参考(NodeJS ES2105支持链接)。 您是否知道在不久的将来NodeJS是否会立即支持这些模块?

13
是否可以使用通配符从目录中的所有文件导入模块?
使用ES6,我可以从这样的文件导入多个导出: import {ThingA, ThingB, ThingC} from 'lib/things'; 但是,我喜欢每个文件有一个模块的组织。我最终得到这样的进口: import ThingA from 'lib/things/ThingA'; import ThingB from 'lib/things/ThingB'; import ThingC from 'lib/things/ThingC'; 我希望能够做到这一点: import {ThingA, ThingB, ThingC} from 'lib/things/*'; 或类似的名称,并且每个文件都包含一个默认导出,并且每个模块的名称与其文件相同。 这可能吗?







4
“……解析为非模块实体并且无法使用此构造导入”是什么意思?
我有一些TypeScript文件: MyClass.ts class MyClass { constructor() { } } export = MyClass; 我的功能 function fn() { return 0; } export = fn; 我的消费者 import * as MC from './MyClass'; import * as fn from './MyFunc'; fn(); 这在尝试使用时给我错误 new 模块“ MyClass”解析为非模块实体,无法使用此构造导入。 当尝试打电话时 fn() 无法调用类型缺少调用签名的表达式。 是什么赋予了?

6
ES2015导入在Firefox中不起作用(即使在顶级)
这些是我的示例文件: <!DOCTYPE html> <html> <head> <title>Test</title> <script src="t1.js"></script> </head> <body></body> </html> t1.js: import Test from 't2.js'; t2.js: export const Test = console.log("Hello world"); 当我在Firefox 46中加载页面时,它返回“ SyntaxError:导入声明可能仅出现在模块的顶层”-但我不确定import语句可以在此处获得多少顶层。此错误是红色鲱鱼吗,并且尚不支持导入/导出吗?

4
浏览器中的ES6模块:Uncaught SyntaxError:意外的令牌导入
我是ES6(ECMAScript 6)的新手,我想在浏览器中使用其模块系统。我阅读了Firefox和Chrome支持的ES6,但是使用时出现以下错误export Uncaught SyntaxError: Unexpected token import 我有一个test.html文件 <html> <script src="test.js"></script> <body> </body> </html> 和一个test.js文件 'use strict'; class Test { static hello() { console.log("hello world"); } } export Test; 为什么?

4
带有--harmony_modules选项的ES2015“导入”在节点v6.0.0中不起作用
我正在使用节点v6.0.0,并想使用ES2016(ES6)。但是我意识到“导入”语法不起作用。ES2015中编写模块化代码的基础不是“导入”吗?我也尝试使用--harmony_modules选项运行节点,但是仍然遇到关于“导入”的相同错误。这是代码。 没有“导入”的工作代码: 'use strict'; let sum = 0; class Number { addNumber(num1, num2) { return num1 + num2; } } let numberObj = new Number(); sum = numberObj.addNumber(1,2); console.log("sum of two number 1 and 2 "+ sum); 无法使用“导入”执行代码: server.js 'use strict'; import Number from "./Number"; let sum = 0; let …


2
如何从一个NPM包中导出多个ES6模块
我构建了一个相对较小的NPM包,每个包中包含大约5个不同的ES6类,它们看上去都非常像这样: export default class MyClass { // ... } 然后,我为我的包裹设置了一个入口点,如下所示: export { default as MyClass } from './my-class.js'; export { default as MyOtherClass } from './my-other-class.js'; 然后,我通过webpack和babel运行入口点,最后以经过编译和缩小的index.js结尾 安装和导入软件包可以正常工作,但是当我从客户端代码执行以下操作时: import { MyClass } from 'my-package'; 它不仅导入“ MyClass”,还导入整个文件,包括每个类的所有依赖关系(我的某些类具有很大的依赖关系)。 当您尝试导入已捆绑的软件包的一部分时,我想到了webpack是如何工作的?所以我也将我的本地webpack配置设置为也node_modules/my-package通过babel 运行,然后尝试: import { MyClass } from 'my-package/src/index.js'; 但是即使这样,它也会导入index.js导出的每个类。看来我想要的唯一运作方式是: import MyClass from 'my-package/src/my-class.js'; 但我宁愿: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.