Node.JS 中的 `import` 支持是个谎言
The `import` support in Node.JS is a lie
或者我做错了什么?
文档指出,从版本 10 开始,Node.JS 中就有实验性的 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 也会挂起,而不是显示上面的错误。
您的文件需要有 .mjs
扩展名。 See the docs here
Once this has been set, files ending with .mjs
will be able to be loaded as ES Modules.
或者我做错了什么?
文档指出,从版本 10 开始,Node.JS 中就有实验性的 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 也会挂起,而不是显示上面的错误。
您的文件需要有 .mjs
扩展名。 See the docs here
Once this has been set, files ending with
.mjs
will be able to be loaded as ES Modules.