Historically, the npm init
command was solely use to create a new package.json file. However, as of npm version 6.1, you can now use a new feature of npm init
called the . The initializer you provide will determine how your new application will be built. npm will prepend create-
to the name of the initializer and it'll use npx to temporarily install and execute that project.
npx create-react-app playground
What it does is install 'create-react-app' temporality, and use it to init a new react application called 'playground'.
For npm v6.1 above, you can use 'npm init' to create a new application.
npm init <initializer>
can be used to set up a new or existing npm package.
initializer
in this case is an npm package namedcreate-<initializer>
, which will be installed bynpx
, and then have its main bin executed -- presumably creating or updatingpackage.json
and running any other initialization-related operations. Link
Which means if you do:
npm init react-app playground
equals to:
npx create-react-app playground