What is the difference between yarn run and npm start?

NpmYarnpkgNpm Start

Npm Problem Overview


Is yarn run intended to be the equivalent of npm start?

Npm Solutions


Solution 1 - Npm

It seems yarn run start is the equivalent of npm start, which runs the script inside the start field of the script field in package.json

Solution 2 - Npm

Few things to understand:

npm: run command is mandatory to execute user defined scripts.
yarn: run command is not mandatory to execute user defined scripts.

start command is not a user defined script name, so you may not need to specify run command to execute it.

So, all the below commands work similar!

  • npm start

  • npm run start

  • yarn start

  • yarn run start

If you have a user defined script named 'app':

  • npm app (Does not work!)
  • npm run app (Works!)
  • yarn app (Works!)
  • yarn run app (Works!)

Note: By default start runs node server.js in case not explicitly defined.

Solution 3 - Npm

npm start is a shortcut for npm run start

Now in terms of running scripts from package.json, all these are equivalent:

npm run start
npm start
yarn run start
yarn start

npm run myscript
npm myscript this is an error
yarn run myscript
yarn myscript

This is because run is not mandatory command for yarn, but it is for npm.


Bonus

npr start - OK
npr myscript - OK

Put this file somewhere in PATH, eg. %localappdata%\Programs\Git\cmd

npr.cmd
npm run %*

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondanielyView Question on Stackoverflow
Solution 1 - NpmdanielyView Answer on Stackoverflow
Solution 2 - NpmChandrashekhar NaikView Answer on Stackoverflow
Solution 3 - NpmQwertyView Answer on Stackoverflow