Vue.js项目npm install遇18个漏洞,常规修复无效求解决方案
Vue项目npm依赖漏洞修复方案
一、强制替换深层依赖版本(快速临时修复)
在package.json中添加overrides字段(npm 8.3+版本支持),强制指定有漏洞的依赖为安全版本:
"overrides": { "ajv": "^6.12.6", "json5": "^1.0.2", "nth-check": "^2.0.1", "serialize-javascript": "^3.1.0", "ssri": "^6.0.2" }
添加完成后执行:
npm install
二、替换废弃/停止维护的顶层插件
多数漏洞来自不再更新的旧插件,直接替换为官方推荐的替代方案:
替换extract-text-webpack-plugin:该插件已废弃,改用
mini-css-extract-pluginnpm uninstall extract-text-webpack-plugin npm install mini-css-extract-plugin --save-dev随后修改webpack配置文件,将
ExtractTextPlugin替换为MiniCssExtractPlugin。替换uglifyjs-webpack-plugin:改用
terser-webpack-plugin(webpack 4+版本默认内置)npm uninstall uglifyjs-webpack-plugin npm install terser-webpack-plugin --save-dev更新webpack配置中的代码压缩插件配置。
替换optimize-css-assets-webpack-plugin:改用
css-minimizer-webpack-pluginnpm uninstall optimize-css-assets-webpack-plugin npm install css-minimizer-webpack-plugin --save-dev
三、升级Babel生态依赖
旧版babel-core(5.x)存在依赖链漏洞,直接升级到新版@babel系列:
npm uninstall babel-core babel-register npm install @babel/core @babel/register --save-dev
同时更新项目根目录的.babelrc或babel.config.js配置,例如使用@babel/preset-env:
{ "presets": ["@babel/preset-env"] }
四、升级cssnano及相关依赖
升级到最新版cssnano及配套插件,修复依赖链漏洞:
npm install cssnano@latest postcss-svgo@latest cssnano-preset-default@latest --save-dev
五、彻底清理后重装依赖
执行以下命令清除缓存和旧依赖,重新安装:
npm cache clean --force rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者raahim sarfaraz
相关产品推荐
相关产品推荐

