React项目执行npm install出现废弃警告问题求助
问题详情
删除node_modules文件夹后执行npm install重建依赖时出现大量废弃警告,该问题在多台安装了最新版Node-v18.16.0-x64与VSCodeUserSetup-x64-1.78.2的设备上均存在,且不局限于特定项目——使用npx create-react-app my-app创建新项目时同样会触发此类警告。具体疑问如下:
npx create-react-app my-app命令是否已被废弃?- 若是,如何为通过此命令创建的旧项目重建
node_modules文件夹? - 若否,如何解决当前的废弃警告问题?
对应的警告信息:
> npm install npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility npm WARN deprecated rollup-plugin-terser@7.0.2: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin. npm WARN deprecated workbox-cacheable-response@6.6.0: workbox-background-sync@6.6.0 npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x. added 1495 packages, and audited 1496 packages in 1m 234 packages are looking for funding run `npm fund` for details 6 high severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details.
解答
1. npx create-react-app my-app是否已废弃?
已废弃。React官方在2023年宣布停止维护Create React App(CRA),不再推出新功能,推荐使用Vite、Next.js等更现代的构建工具创建新项目。
2. 旧CRA项目如何重建node_modules文件夹?
- 直接执行
npm install即可完成依赖重建,即便存在废弃警告,只要项目能正常运行,就不会影响核心功能。 - 若想减少部分警告,可先将CRA升级到最后一个维护版本
react-scripts@5.0.1,执行命令:
之后再运行npm install react-scripts@5.0.1 --savenpm install重建依赖。
3. 如何解决废弃警告问题?
方法一:忽略非关键警告
这些废弃警告大多来自CRA依赖树深处的间接依赖,仅提示该依赖已停止维护,不会直接导致项目崩溃。只要项目能正常构建和运行,可暂时忽略此类警告。
方法二:升级依赖或迁移构建工具
- 升级核心依赖:手动更新
package.json中的react、react-dom到最新稳定版,再执行npm install,能减少部分依赖链上的废弃提示。 - 迁移到现代构建工具:如果希望彻底解决依赖废弃问题,建议将项目迁移到Vite或Next.js。两者都提供了CRA迁移指南,可平滑过渡,同时获得更优的构建性能和更简洁的依赖树。
方法三:处理高风险漏洞
对于npm audit提示的高风险漏洞,谨慎使用npm audit fix --force——该命令会强制升级依赖,可能引发兼容性问题。更稳妥的操作是:
- 执行
npm audit查看漏洞的具体来源和详情; - 针对具体漏洞,手动升级对应的依赖包到安全版本;
- 若漏洞来自间接依赖,可在
package.json中使用overrides字段指定依赖的安全版本,示例:
配置完成后执行"overrides": { "svgo": "^2.8.0" }npm install即可覆盖旧版本。
内容的提问来源于stack exchange,提问作者Y.S.
相关产品推荐
相关产品推荐

