2

或者也许我做错了什么?

文档指出,Node.JS 从版本 10 开始就有实验性的 ES6 模块加载器。我等了很长时间 - 加载模块是唯一阻止我在浏览器和节点中顺利使用相同代码的事情。

我的代码:

import findNextBracket from "./BracketFinder.js";

我如何启动节点:

node --experimental-modules ConvertToEs6Modules.js

我是如何失望的:

(node:7116) ExperimentalWarning: The ESM module loader is experimental.
D:\web\lines\ConvertToEs6Modules.js:1
(function (exports, require, module, __filename, __dirname) { import findNextBracket  from "./BracketFinder.js";
                                                                     ^^^^^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at new Script (vm.js:74:7)
    at createScript (vm.js:246:10)
    at Proxy.runInThisContext (vm.js:298:10)
    at Module._compile (internal/modules/cjs/loader.js:670:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at createDynamicModule (internal/modules/esm/translators.js:54:15)
    at setExecutor (internal/modules/esm/create_dynamic_module.js:50:23)

如果您尝试在其中运行此类文件,Visual Studio 也会挂起,而不是显示上述错误。

4

1 回答 1

4

您的文件需要具有.mjs扩展名。在此处查看文档

设置好后,以 结尾的文件.mjs将能够作为 ES 模块加载。

于 2018-06-13T20:18:14.323 回答