纱线运行和 npm 启动的区别是什么?

yarn run是否等同于 npm start

108157 次浏览

看起来 yarn run start等价于 npm start,它在 package.jsonscript字段的 start字段中运行脚本

有些事情需要理解:

Npm: 运行命令 是强制性的来执行用户定义的脚本。
纱线: run 命令是 不是强制性的,用于执行用户定义的脚本。

Start command 不是用户定义的脚本名,因此可能不需要指定 run command 来执行它。

因此,以下所有命令的工作原理都是相似的!

  • npm start
  • npm run start
  • yarn start
  • yarn run start

如果您有一个名为 应用程序的用户定义脚本:

  • npm app (不工作!)
  • npm run app (工作!)
  • yarn app (工作!)
  • yarn run app (工作!)

注意: 默认情况下,如果没有明确定义,则启动运行 Node server.js

npm startnpm run start的快捷方式

package.json运行脚本,所有这些都是等价的:

npm run start
npm start
yarn run start
yarn start

npm run myscript
这是一个错误
yarn run myscript
yarn myscript

这是因为 run 不是对于 yarn是强制命令,而 是的对于 npm是强制命令。


意外收获

好的
好的

这个文件放在 PATH的某个位置,例如 %localappdata%\Programs\Git\cmd

npr.cmd
npm run %*

yarn run类似于 npm run,它们可以用来运行 package.json中的脚本。

对于 npm,在运行 npm 生命周期脚本(ABC1、 ABC2、 ABC3和 ABC4)时,可以省略 run,但是这些脚本可能有额外的效果。例如,如果“ script”对象没有在 package.json中定义“ start”属性,则 npm start将运行 node server.js。看看医生 test0。test1

对于纱线,使用 对于 ABC1中的所有脚本,可以省略 run,但是如果脚本名与纱线内置的 cli 命令相同,则使用 内置的 cli 命令将优先于您的脚本.doc 纱线脱落

因此,在 package.json 中运行脚本的最佳方式是: 永远不要忽略 run