繁体   English   中英

在 package.json 脚本中,我如何将参数传递给 node,而不是脚本?

[英]In a package.json script, how do I pass an argument to node, as opposed to the script?

我的package.json中有一个脚本,如下所示:

  "scripts": {
    "test": "... && mocha --full-trace test/db test/http test/storage test/utils",

我想将--async-stack-traces传递给 mocha,但是--async-stack-traces是节点命令行参数,而不是 mocha 命令行参数。

我想我可以通过运行node --async-stack-traces node_modules/mocha/bin/mocha --full-trace test/db test/http test/storage test/utils ,但有些东西感觉不雅或非惯用语。 有没有另一种方法来实现这一目标?

你写的方式基本上就是这样做的方式:

node --async-stack-traces node_modules/mocha/bin/mocha --full-trace test/db test/http test/storage test/utils

您可以像这样使用node_modules/.bin稍微整理一下:

node --async-stack-traces node_modules/.bin/mocha --full-trace test/db test/http test/storage test/utils

下一个可能不是 Windows 兼容的,也不那么容易理解,但如果你只支持类 UNIX 操作系统,你可以依靠npm脚本的$PATH注入来稍微整理一下:

node --async-stack-traces `which mocha` --full-trace test/db test/http test/storage test/utils

如果你不想依赖whereis ,你可以使用npm bin

node --async-stack-traces `npm bin`/mocha --full-trace test/db test/http test/storage test/utils

希望在这一点上,您举手并回到上面的第一个或第二个选项。 (我推荐第二个选项,所以你不依赖于mocha包布局,可以想象这可能会改变。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM