使用npx create-react-app时如何将包管理器从yarn切换为npm
解决create-react-app默认生成yarn.lock的问题
即使你已经卸载了yarn本体,create-react-app(简称CRA)依然会优先读取本地残留的yarn配置、或者全局包管理器的偏好设置,所以还是会生成yarn.lock文件,可按照以下方案处理:
单次创建项目强制指定npm
如果只是单次创建需要用npm,直接在创建命令后加参数即可:
npx create-react-app 你的项目名称 --use-npm
执行后生成的项目会直接生成package-lock.json,不会出现yarn.lock文件。
全局设置默认使用npm(一劳永逸)
你可以配置全局环境变量,让后续所有CRA项目创建时自动默认用npm:
- Windows cmd环境执行:
setx CRA_CONFIG_PACKAGE_MANAGER npm - Windows PowerShell环境执行:
[Environment]::SetEnvironmentVariable("CRA_CONFIG_PACKAGE_MANAGER", "npm", "User") - Mac/Linux 环境:
打开你当前使用的shell配置文件(如~/.bashrc、~/.zshrc),在末尾添加一行:export CRA_CONFIG_PACKAGE_MANAGER=npm
保存后执行source ~/.zshrc(替换为你对应的配置文件名)让配置立即生效。
额外排查:清理yarn残留
如果配置后仍不生效,检查用户根目录下是否有.yarnrc、.yarn这类yarn残留的配置或缓存目录,直接删除即可。也可以先清理npx缓存后再创建项目:npx clear-npx-cache
React Native项目统一使用npm的设置
创建React Native项目时直接指定npm的命令:
npx react-native init 你的项目名称 --package-manager npm
要全局默认的话,在上述的环境变量中额外添加npm_config_package_manager=npm即可,所有Node生态的项目初始化工具都会优先读取这个配置,默认使用npm作为包管理器。
内容的提问来源于stack exchange,提问作者wantonay
相关产品推荐
相关产品推荐

