yarn run
的意图是否等同于npm start
?
yarn run
的意图是否等同于npm start
?
看起来 yarn run start
相当于 npm start
,它会运行package.json
文件中 script
字段下的 start
脚本。
yarn start
命令会执行 package.json 文件中的 start
脚本。 - Qwertyrun
在yarn run
中不是必需的,除非脚本名称与yarn子命令相同(例如,“run”需要yarn run run
,这很奇怪,可能应该避免)。 - Kevinnpm start
是 npm run start
的简写。
现在从 package.json
运行脚本的角度来看,以下所有命令都是等效的:
npm run start
npm start
yarn run start
yarn start
npm run myscript
npm myscript
这是一个错误
yarn run myscript
yarn myscript
这是因为对于yarn
而言,run
不是必要的命令,但对于npm
而言是必要的。
npr start
- OK
npr myscript
- OK
将 此文件 放在 PATH
中的某个位置,例如 %localappdata%\Programs\Git\cmd
npr.cmd
npm run %*
yarn run
与 npm run
类似,它们可以用于运行 package.json
中的脚本。
对于 npm,在运行 npm 生命周期脚本(test
、start
、restart
和 stop
)时,可以省略 run
,但这些脚本可能会产生额外的效果。例如,如果 "scripts" 对象在 package.json
中未定义 "start" 属性,则 npm start
将运行 node server.js
。请参阅文档 npm run。您不能省略其他名称的脚本中的 run
。
对于 yarn,您可以省略 package.json
中所有脚本的 run
,但如果您的脚本名称与 yarn 内置的 cli 命令相同,内置的 cli 命令将优先于您的脚本。请参阅文档 yarn run。
因此,在 package.json 中运行脚本的最佳方式是:永远不要省略 run
。