2017-07-08 54 views
3

我的NodeJS V8使用ES6 '进口' 没有transpilers声明

$ node -v 
v8.1.3 

和脚本:

import cmd from "commander"; 

有一个错误 “意外令牌进口” 当我尝试推出这一script:

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

    SyntaxError: Unexpected token import 

是否存在使用ES6模块的任何方法(“import”st没有译员?)

回答

2

不使用transpiler,你必须使用require

const cmd = require('commander'); 
6

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

node -r @std/esm index.js

注意,为了有节点自动检测,如果一个文件应该使用ESM(允许你使用而不是使用迈克尔·杰克逊的解决方案,.mjs.js文件扩展名),你”将不得不添加到您的package.json如下:

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

看到standard-things/esm在GitHub上的全部细节。