在 package.json
文件中的 scripts
字段中,一条命令可以同时执行多个指令。
而指令间可以使用
- &,例如:
"start": "node app.js & nodemon"
- &&,例如:
"start": "node app.js && nodemon"
- 不使用连接符,例如:
"start": "node app.js nodemon"
三者是有区别的。
一、&
& 符号:表示执行当前指令后立即执行下一个指令,不管上一个指令是否执行成功。
"scripts": {
"start": "node app.js & nodemon"
}
当执行 npm run start
命令时,会先执行 node app.js
指令,然后立即执行 nodemon
指令,不管 node app.js
是否执行成功。
二、&&
&& 符号:表示只有上一个指令执行成功后,才会执行下一个指令。
"scripts": {
"start": "node app.js && nodemon"
}
当执行 npm run start
命令时,会先执行 node app.js
指令,如果执行成功,则会执行 nodemon
指令;如果执行失败,则不会执行 nodemon
指令。
二、不使用连接符
如果在 package.json
文件中的 scripts
字段中不使用 & 和 && 符号来连接指令,那么默认情况下会按照顺序依次执行每个指令。
"scripts": {
"start": "node app.js nodemon"
}
当执行 npm run start
命令时,会先执行 node app.js
指令,然后执行 nodemon
指令。这里的 nodemon
实际上会作为 node app.js
的参数传递给它。
需要注意的是,如果某个指令执行失败(即返回非零的退出码),那么后续的指令将不会执行。因此,如果希望所有指令都能执行,可以使用 && 符号来连接它们,以确保前一个指令成功执行后才会执行下一个指令。