【发布时间】:2020-05-15 20:07:54
【问题描述】:
假设我有以下 npm 脚本:
"test": "node $FILE"
如何通过 cli 将绝对路径传递给它?
例子:
FILE="pwd + filename" npm run test
这应该导致:
node /Root/Subfolder/filename
我在 MacOS 上使用 NodeJS 14。
【问题讨论】:
-
确实不需要设置环境变量。考虑将文件路径作为参数传递。例如; 1)在package.json中定义你的脚本为
"test": "node"2)然后运行;npm test -- "subfolder/filename"(注意:npm test命令和文件路径之间的--是必需的)。这种方式适用于跨平台,这与您当前接受的仅适用于 *nix 平台(Linux、macOS 等)的答案不同。 -
@RobC 啊,我明白了。我会试试那个。忘记了
-
当然,我建议的解决方案实际上更类似于您帖子的标题,即“通过 cli 将文件路径传递到节点”,它利用了内置的 npm 功能。而实际上您接受的答案; 1) 在运行
npm test命令之前设置一个名为FILE的环境变量2) 然后在package.json 中引用该环境变量- 全部使用 bash 功能完成,当然这在使用cmd作为默认 shell 而不是sh按照 *nix 的 Windows 上会失败。
标签: javascript node.js macos command-line-arguments npm-scripts