使用ES6'import'语句而不使用转换器

Ale*_*sev 3 module node.js transpiler ecmascript-6

我有nodejs v8

$ node -v
v8.1.3
Run Code Online (Sandbox Code Playgroud)

和一个脚本:

import cmd from "commander";
Run Code Online (Sandbox Code Playgroud)

尝试启动此脚本时出现" 意外的令牌导入 " 错误:

$ node script.js
/.../script.js:1
(function (exports, require, module, __filename, __dirname) { import cmd from "commander";
                                                              ^^^^^^

    SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)

是否存在使用ES6模块("import"语句)而没有转换器的方法?

Rom*_*tor 8

接受的答案不再是正确的答案.在NodeJS 4+中,您现在可以通过安装@std/esm软件包并使用-r @std/esm命令行上的选项调用脚本来启用ES模块.例如:

node -r @std/esm index.js

请注意,为了让Node自动检测文件是否应该使用ESM(允许您使用.js文件扩展名而不是使用Michael Jackson解决方案.mjs),您必须添加package.json以下内容:

"@std/esm": { "esm": "js" },

在GitHub上查看标准事物/ esm的完整详细信息.