如何阻止create-react-app默认将yarn作为包管理器?
解决方案:永久设置create-react-app默认使用npm
存在永久配置方法,不需要每次手动加--use-npm参数,操作如下:
- 方法1:通过命令行设置全局npm配置
直接在终端执行以下命令即可,配置永久生效:npm config set create-react-app_use_npm true - 方法2:手动修改配置文件
打开系统用户目录下的.npmrc文件,新增一行配置后保存即可:create-react-app_use_npm=true
配置完成后,后续执行npx create-react-app创建项目时,无论是否全局安装了yarn,都会默认使用npm作为包管理器。
注:你提问中提到的
npx create-next-app my-app --use-npm是Next.js框架的项目创建命令,React应用对应的临时强制用npm命令为npx create-react-app my-app --use-npm。
yarn被设为默认包管理器的原因
create-react-app的内置包管理器选择逻辑里,会优先检测当前环境的包管理器安装情况:如果检测到系统全局安装了yarn,且当前创建目录下没有已存在的包锁文件(package-lock.json或yarn.lock),就会默认选择yarn作为包管理器。
这个优先级设定是历史原因:yarn刚推出时,相比同期的npm v3/v4版本,在依赖安装速度、依赖版本一致性方面有明显优势,因此create-react-app团队将yarn的选择优先级设置得高于npm,该逻辑一直保留到当前版本。
内容的提问来源于stack exchange,提问作者klondike
相关产品推荐
相关产品推荐

