如何更新node-sass的嵌套依赖ansi-regex 解决npm audit相关操作无效问题
ansi-regex嵌套依赖安全告警修复方案
以下是可直接落地的操作方案:
方案1:使用overrides强制锁定版本(适配npm v8.3.0及以上版本)
在项目根目录package.json中新增overrides配置项,强制全依赖树的ansi-regex使用安全版本:{ "overrides": { "ansi-regex": "6.0.1" } }配置完成后删除项目下的
node_modules文件夹、package-lock.json/npm-shrinkwrap.json文件,重新执行npm install即可,安装完成后再执行npm audit验证告警已消除。方案2:替换废弃依赖从根源解决问题
本次告警的上层依赖node-sass已官方停止维护,依赖链长期未更新才会出现嵌套依赖无法升级的问题。你可以直接将node-sass替换为官方推荐的sass(dart-sass),现有Sass代码无需修改即可兼容:- 执行卸载命令:
npm uninstall node-sass - 执行安装命令:
npm install sass --save-dev
替换完成后所有node-sass关联的老旧依赖安全告警都会自动清除,也不会再出现同类嵌套依赖版本被回退的问题。
- 执行卸载命令:
方案3:使用npm-force-resolutions适配低版本npm
如果你使用的npm版本低于v8.3.0不支持overrides,可以用该方案:- 在
package.json中新增resolutions配置:
{ "resolutions": { "ansi-regex": "6.0.1" } }- 在
package.json的scripts节点新增预安装钩子:
{ "scripts": { "preinstall": "npx npm-force-resolutions" } }- 保存配置后重新执行
npm install即可生效。
- 在
内容的提问来源于stack exchange,提问作者Cheetara
相关产品推荐
相关产品推荐

