npx 使用纱线吗?
Posted
技术标签:
【中文标题】npx 使用纱线吗?【英文标题】:Does npx use yarn? 【发布时间】:2020-11-25 16:50:07 【问题描述】:今天我使用 CRA 创建了一个 reactjs 起始模板:
npx create-react-app my-app --template redux
这在我的项目中创建了两个文件:package.json
和 yarn.lock
。
我很困惑为什么在我在项目中 cd
并运行 yarn start
之后它会起作用,即使我没有使用 yarn create react-app my-app
启动项目。
我有两个问题:
为什么会生成 yarn.lock? 两者有什么区别npx create-react-app my-app --template redux
和
yarn create react-app my-app --template redux
考虑到它们具有相同的效果。
【问题讨论】:
【参考方案1】:npx create-react-app
执行create-react-app
二进制文件,create-react-app
使用yarn
创建您的项目(如果安装了 yarn)。这就是为什么您可以看到 yarn.lock
以及为什么 yarn-start
有效。
npx create-react-app
和yarn create react-app
之间的区别
它们都执行create-react-app
二进制文件。 create-react-app
是决定是否要使用纱线创建项目的人。要在create-react-app
中使用npm
,请使用--use-npm
标志(无论您使用npx
或yarn
或directly
执行create-react-app
,如果您希望它使用npm
,则应设置它。 ):
create-react-app my-project --use-npm
【讨论】:
create-react-app uses yarn
解释它。【参考方案2】:
create-react-app
使用 yarn 进行设置(如果已安装)。
因此,如果您的系统中已经安装了 yarn,那么 npx create-react-app my-app --template redux
和 yarn create react-app my-app --template redux
会给您相同的最终结果。
并且它已经安装在您的系统中,这就是它生成 yarn.lock 而不是 package.lock 的原因。
yarn.lock is generated to keep the exact version of the installed packages.
【讨论】:
以上是关于npx 使用纱线吗?的主要内容,如果未能解决你的问题,请参考以下文章
npx create-react-app 后纱线启动不起作用
npx create-react-app 在 big sur 上执行 yarnpkg 时失败