如何将参数传递给ts-node处理的脚本

时间:2019-01-04 14:48:21

标签: ts-node

我刚刚开始使用ts-node。这是一个非常方便的工具。运行时间看起来很清晰。但是它不适用于CLI解决方案。我无法将参数传递到已编译的脚本中。

ts-node --preserve-symlinks src/cli.ts -- printer:A

它不起作用。我正在寻求帮助。

3 个答案:

答案 0 :(得分:3)

尝试一下: node -r ts-node/register src/cli.ts printer:A

答案 1 :(得分:2)

您没有提供脚本,所以我只能猜测您是如何提取参数的。这就是我将其与自己的测试脚本args.ts配合使用的方式:

const a = process.argv[2];
const b = process.argv[3];
const c = process.argv[4];
console.log(`a: '${a}', b: '${b}', c: '${c}'`);

package.json进行如下调用:

"scripts": {
   "args": "ts-node ./args.ts -- 4 2 printer:A"
}

这将给我这样的输出:

a: '4', b: '2', c: 'printer:A'

答案 2 :(得分:0)

NODE_OPTIONS

对于节点选项,除了 https://stackoverflow.com/a/60162828/895245 中提到的 -r ts-node/register 之外,他们现在还在文档中提到了 NODE_OPTIONS 环境变量:https://typestrong.org/ts-node/docs/configuration/#node-flags

NODE_OPTIONS='--trace-deprecation --abort-on-uncaught-exception' ts-node ./index.ts

快速测试:

main.ts

(async () => { throw 'asdf' })()

然后运行:

NODE_OPTIONS='--unhandled-rejections=strict' ts-node main.ts
echo $?

按预期给出 1

在 Node v14.16.0、ts-node v10.0.0 上测试。