【发布时间】:2018-06-19 04:02:29
【问题描述】:
如何在 Node 中将 ES6 模块作为脚本运行?
当我尝试这个 shebang 时出现错误:
#!/usr/bin/env node --experimental-modules
/usr/bin/env: 'node --experimental-modules': 没有这样的文件或目录
如果我使用这个 shebang,它会出现语法错误(当然):
#!/usr/bin/env node
SyntaxError: 意外的令牌导入
我正在使用的解决方法是使用 shell 脚本来调用模块:
#!/usr/bin/env sh
BASEDIR=$( dirname "$0" )
node --experimental-modules $BASEDIR/script.mjs "$@"
是否可以在没有第二个文件的情况下使其正常工作?
【问题讨论】:
-
您使用的是什么版本的节点?除了几个很少使用的特性和尾调用递归之外,node.js 自 2017 年 7 月以来几乎默认完全支持 ES6。最简单的解决方案可能是升级 node.js。我个人使用
n包(npm install -g n然后n stable) -
@slebetman 您仍然必须传递 --experimental-modules 标志。他们预计这将仅在 Node v10 中默认启用。
标签: node.js executable es6-modules shebang