Does npx use yarn?
Asked Answered
C

2

33

Today I created a reactjs starting template with CRA using:

npx create-react-app my-app --template redux

This created two files in my project: package.json and yarn.lock.

I am confused about why it worked after I cd in the project and ran yarn start even though I didn't initiate the project with yarn create react-app my-app.

I have two questions:

  • Why it generated yarn.lock?
  • What is the difference between
    • npx create-react-app my-app --template redux and
    • yarn create react-app my-app --template redux considering that they have the same effect.
Centistere answered 5/8, 2020 at 13:35 Comment(0)
A
41

npx create-react-app executes create-react-app binary, and create-react-app uses yarn to create your project (if yarn is installed). that's why you can see yarn.lock and also why yarn-start works.

Difference between npx create-react-app and yarn create react-app

They both executes create-react-app binary. create-react-app is the one who decides whether it wants to create the project with yarn or not. to use npm in create-react-app, use --use-npm flag (no matter you execute create-react-app with npx or yarn or directly, you should set it if you want it to use npm .):

create-react-app my-project --use-npm
Accad answered 5/8, 2020 at 13:39 Comment(1)
create-react-app uses yarn explains it.Centistere
W
7

create-react-app uses yarn for the setup if it's installed.

So, if yarn is already installed in your system, then npx create-react-app my-app --template redux and yarn create react-app my-app --template redux would give you the same end-result.

And it is already installed in your system, that's why it has generated yarn.lock and not package.lock.

yarn.lock is generated to keep the exact version of the installed packages.
Whitesmith answered 5/8, 2020 at 13:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.