连接NPM脚本命令?

时间:2017-05-09 18:05:51

标签: javascript node.js npm

我知道可以使用&&pre-post-挂钩来链接NPM脚本,但是可以简单地将冗长的脚本行分成单个连接的行吗? / p>

例如,我想转换一下:

"script": {
  "build": "--many --commands --are --required --on --a --single --line"
}

进入这个:

"script": {
  "part1": "--many --commands",
  "part2": "--are --required",
  "part3": "--on --a",
  "part4": "--single --line",
  "build": "part1 + part2 + part3 + part4"
}

因此,当我输入npm run build时,它会将命令的所有部分合并到一行。

我也熟悉配置变量,但它们不是跨平台的解决方案,所以我会避免使用它们。

4 个答案:

答案 0 :(得分:4)

常见的做法是:

{
  "scripts:": {
    "script1": "cmd1",
    "script2": "cmd2",
    "script3": "cmd3",
    "build": "npm run script1 && npm run script2 && npm run script3",
  }
}

答案 1 :(得分:1)

您可以像这样在package.json中使用config参数, 虽然更长!

您至少可以使用此方法重复使用配置。

也许有一种方法可以基于正则表达式来连接多个环境变量。

{

  "config": {
    "part1": "--many --commands",
    "part2": "--are --required",
    "part3": "--on --a",
    "part4": "--single --line",
  },
  "script": {
    "build": "cmd $npm_package_config_part1 $npm_package_config_part2 $npm_package_config_part3 $npm_package_config_part4"
  }
}

答案 2 :(得分:1)

您可以使用npm install -g concurrently

简单用法:

concurrently "command1 arg" "command2 arg"

答案 3 :(得分:0)

类似于TheDarkIn1978的答案,但更简短:

"script": {
  "build:js": "--many --commands",
  "build:css": "--are --required",
  "build:images": "--on --a",
  "build": "run-s build:*"
}