yarn run 和 npm start 有啥区别?

Posted

技术标签:

【中文标题】yarn run 和 npm start 有啥区别?【英文标题】:What is the difference between yarn run and npm start?yarn run 和 npm start 有什么区别? 【发布时间】:2017-03-29 21:24:40 【问题描述】:

yarn run 是否打算等同于 npm start

【问题讨论】:

为了让事情更混乱,yarn start == yarn run start 【参考方案1】:

似乎yarn run start相当于npm start,它在package.jsonscript字段的start字段内运行脚本

【讨论】:

yarn start 还运行 package.json 中的 start 脚​​本。【参考方案2】:

要理解的几件事:

npm:运行命令强制执行用户定义的脚本。yarn:运行命令非强制 执行用户定义的脚本。

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

因此,以下所有命令的工作方式都相似!

npm start npm run start yarn start yarn run start

如果您有一个名为 'app' 的用户定义脚本:

npm app (不起作用!) npm run app (有效!) yarn app (有效!) yarn run app (有效!)

注意:如果没有明确定义,默认情况下 start 运行 node server.js

【讨论】:

您指定的默认行为具有误导性。 文档中也提到了默认行为,类似docs.npmjs.com/cli/start.html run 对于 yarn run 不是必需的,除非脚本的名称与 yarn 子命令相同(例如,“run”需要 yarn run run,这很奇怪,可能想要避免)。【参考方案3】:

npm startnpm run start 的快捷方式

现在就来自package.json运行脚本而言,所有这些都是等价的:

npm run startnpm startyarn run startyarn start

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

这是因为run 不是yarn 的强制命令,但它是 npm 的强制命令。


奖金

npr start - 好的npr myscript - 好的

this 文件放在PATH 中的某处,例如。 %localappdata%\Programs\Git\cmd

npr.cmd
npm run %*

【讨论】:

以上是关于yarn run 和 npm start 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

yarn.lock 和 npm 的 shrinkwrap 有啥区别?

brew、yarn 和 npm 有啥区别?

何时在 NPM 上使用 Yarn?有啥区别?

yarn.lock 和 npm 的 package-lock 有啥区别?

`yarn link` 和 `npm link` 有啥区别?

Laravel 中的 npm run watch 和 npm run hot 有啥区别?