npx 使用纱线吗?

Posted

技术标签:

【中文标题】npx 使用纱线吗?【英文标题】:Does npx use yarn? 【发布时间】:2020-11-25 16:50:07 【问题描述】:

今天我使用 CRA 创建了一个 reactjs 起始模板:

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

这在我的项目中创建了两个文件:package.jsonyarn.lock

我很困惑为什么在我在项目中 cd 并运行 yarn start 之后它会起作用,即使我没有使用 yarn create react-app my-app 启动项目。

我有两个问题:

为什么会生成 yarn.lock? 两者有什么区别 npx create-react-app my-app --template reduxyarn 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-appyarn create react-app 之间的区别

它们都执行create-react-app 二进制文件。 create-react-app 是决定是否要使用纱线创建项目的人。要在create-react-app 中使用npm,请使用--use-npm 标志(无论您使用npxyarndirectly 执行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 reduxyarn 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 后纱线启动不起作用

[NodeJs] 你有使用过npx吗?它主要解决什么问题?

npx create-react-app 在 big sur 上执行 yarnpkg 时失败

我可以用纱线代替 npm 吗?

sparklyr 可以与部署在纱线管理的 hadoop 集群上的 spark 一起使用吗?

npm审计有纱线替代品吗?