我不明白出了什么问题。
节点 v5.6.0
NPM v3.10.6
编码:
function (exports, require, module, __filename, __dirname) {
import express from 'express'
};
错误:
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:140:18)
at node.js:1001:3
原文由 SofDroid 发布,翻译遵循 CC BY-SA 4.0 许可协议
Node 13+ 从 Node 13 开始,您可以使用
.mjs
扩展名,或在 package.json 中设置{"type": "module"}
。您 不需要 使用--experimental-modules
标志。 模块现在在 node.js 中被标记为稳定节点 12 从 节点 12 开始,您可以使用
.mjs
扩展名,或在 package.json 中设置"type": "module"
。您需要使用--experimental-modules
标志运行节点。节点 9 在 节点 9 中,它在标志后面启用,并使用
.mjs
扩展名。虽然
import
确实是 ES6 的一部分,但遗憾的是默认情况下 NodeJS 还不支持它,并且直到最近才在浏览器中获得支持。请参阅 MDN 上的浏览器兼容表 和 此节点问题。
来自 James M Snell 关于 Node.js 中 ES6 模块的更新(2017 年 2 月):
在原生支持出现之前( 现在在 Node 13+ 中标记为稳定),您必须继续使用经典的
require
语句:如果你真的想在 NodeJS 中使用新的 ES6/7 特性,你可以使用 Babel 编译它。 这是一个示例服务器。