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

Javascript 什么是冒号:在npm脚本名称中?,javascript,node.js,bash,shell,Javascript,Node.js,Bash,Shell,试图弄清楚在npm脚本名称中放入:的作用。例如: package.json "test:ci": "rest of script" :ci会做什么?运行npm运行测试:ci失败 我真的找不到任何bash语法。我相信这只是一种命名约定,用于对一组相关任务进行分组。例如,您可能有 "test:ci": ... "test:units": .... "test:integration"... 在本例中,它是对一组相关的测试任务进行分组 这将由包作者来指定。您可以像上面的回答中所述那样拆分任务,然后

试图弄清楚在npm脚本名称中放入:的作用。例如:

package.json

"test:ci": "rest of script"
:ci
会做什么?运行
npm运行测试:ci
失败


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

我相信这只是一种命名约定,用于对一组相关任务进行分组。例如,您可能有

"test:ci": ...
"test:units": ....
"test:integration"...
在本例中,它是对一组相关的测试任务进行分组

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


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

我通过运行-
“npm run”

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

start
nodemon server.js

start:elasticsearch
docker运行elasticsearch..


使用npm run start:elasticsearch解决了此问题。如果使用Thread package manager,您可以在名称中使用冒号从任何工作区调用脚本

根据以下文件:

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

此外,根据以下文件:

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


但它是如何分组的呢?它到底在做什么?有什么好处?@PositiveGuy我已经用一些进一步的上下文/示例更新了原始答案。上面没有“答案”:(与
bash
无关。显然,这是一种可能的约定。为什么我可以调用npm test,但要调用自定义测试脚本(如testHeadless),我必须调用npm run testHeadless?