什么是冒号:在npm脚本名称中?

Pos*_*Guy 6 javascript bash shell node.js

试图找出在npm脚本名称中的放置:是什么。例如:

package.json

"test:ci": "rest of script"
Run Code Online (Sandbox Code Playgroud)

怎么:ci办?运行npm run test:ci失败

我真的找不到任何bash语法。

Chr*_*ale 25

我相信这只是将一组相关任务分组的命名约定。例如你可能有

"test:ci": ...
"test:units": ....
"test:integration"...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它正在对一组相关的测试任务进行分组。

这将取决于包作者来指定。您可以像上面的答案中描述的那样拆分任务,然后使用一个“全局”test命令来组合它们中的每一个,例如test:ci && test:unit && test:integration使您能够一次或在需要时单独运行它们。

您可以使用npm-run-all( link ) 并使用该命令npm-run-all test:*,然后该命令将查找以该test:组开头的所有脚本。

  • 但它是如何分组的?它实际上在做什么?有什么好处? (3认同)
  • 没有“上面的答案”。:'( (3认同)

小智 9

我通过运行解决了这个问题 - "npm run <scriptName>"

在我的package.json文件中,我有两个“启动脚本”

startnodemon server.js

start:elasticsearchdocker run elasticsearch..

解决了 npm run start:elasticsearch

  • 具体解决了什么? (8认同)

Ron*_*nen 6

如果使用 Yarn 包管理器,您可以在名称中使用冒号从任何工作区调用脚本。

根据纱线文档如何在工作区之间共享脚本?

鲜为人知的 Yarn 功能:名称中带有冒号 ( build:foo) 的任何脚本都可以从任何工作区调用。

另外,根据CLI > run上的纱线文档:

否则,如果指定的名称包含冒号字符,并且项目中的工作区之一恰好包含一个具有匹配名称的脚本,则该脚本将被执行。