从Node v8.5.0开始,支持ES6样式模块
import x from 'x'
通过使用选项--experimental-modules
运行节点可以使用,如下所示:
node --experimental-modules test.mjs
使用bin
中的package.json
密钥,您可以通过运行npm link
轻松创建cli工具npm cli。
不幸的是,以这种方式运行时,调用节点时没有可选的--experimental-modules
标志。
如何将bin
模块与--experimental-modules
一起使用?
这是一个例子
仓/ healthcheck.mjs
import { connect } from 'amqplib'
let open = connect(process.env.RABBITMQ_URL);
const exit = ({healthy = true}) => {
return healthy ? process.exit(0) : process.exit(1)
}
open.then(() => {
exit({healthy: true})
}).catch((e) => {
exit({healthy: false})
})
的package.json
{
"name": "my-cli",
"bin": {
"healthcheck": "./bin/healthcheck.mjs"
}
}
运行...
> npm link
> healthcheck
/usr/local/bin/healthcheck: line 1: import: command not found
/usr/local/bin/healthcheck: line 3: syntax error near unexpected token `('
/usr/local/bin/healthcheck: line 3: `let open = connect(process.env.RABBITMQ_URL);'
答案 0 :(得分:6)
您可以在脚本顶部使用shebang
#!/bin/sh
":" //# comment; exec /usr/bin/env node --experimental-modules "$0" "$@"
此处有更多详情:http://sambal.org/2014/02/passing-options-node-shebang-line/