使用package.json中的变量运行脚本?

时间:2018-01-26 13:12:33

标签: node.js bash package.json

我在Node.js项目上工作,经常在bash中运行一个如下命令:

path/to/file/1 --flags path/to/file/2 --flags somecommand

命令大致相同,我只会一直更改path/to/file/2。现在我想在我的package.json文件中实现一个脚本,这样我就可以运行这样的东西:

npm run scriptcommand path/to/file/2

我对bash不太了解,但我觉得我需要在package.json文件中找到类似的内容:

{
  "scripts": {
    "scriptcommand": "path/to/file/1 --flags $1 --flags somecommand"
  }
}

是否有可能用path/to/file/2替换上述示例中的变量,这样我就可以在每次运行时设置不同的路径?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

"scripts": {
    "scriptcommand": "/bin/echo --flags $FLAGS --flags somecommand"},
  

FLAGS =“path / to / file / 2”npm run scriptcommand

基本上,您设置了一个环境变量,您可以在脚本命令中使用它。

答案 1 :(得分:1)

制作一个新文件来保存您的脚本

scriptcommand.sh

#!/usr/bin/env bash
path/to/file/1 --flags $1 --flags somecommand

可能需要chmod it

sudo chmod +x scriptcommand.sh

的package.json

{
  "scripts": {
    "scriptcommand": "scriptcommand.sh"
  }
}

然后运行它

npm run scriptcommand -- "path/to/file/2"

注意--这告诉npm将任何剩余的参数传递给你的脚本。