或者我做错了什么?
文档指出,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也会挂起。
最佳答案
您的文件需要有.mjs
扩展名。See the docs here
设置后,以.mjs
结尾的文件将可以作为es模块加载。