升级Node16后构建Angular应用出现postcss弃用警告如何不降级修复
弃用警告修复方案
该警告是Node 16及以上版本收紧模块解析规则导致的,触发原因为项目依赖的低版本postcss的package.json中exports字段的./映射写法不符合新规范,无需降级Node版本,可通过以下方案解决:
方案1:升级postcss到兼容版本(最推荐,从根源修复问题)
postcss从8.4.0版本开始已经修正了exports字段的写法,直接升级即可消除警告。
npm执行命令:npm install postcss@latest --save-dev
yarn执行命令:yarn add postcss@latest --dev
升级完成后重新执行构建命令即可。方案2:通过overrides/resolutions强制指定兼容版本(适合Angular旧版本绑定低版本postcss的场景)
如果是npm 8.3.0及以上版本,在项目根目录的package.json中新增overrides字段:
{ "overrides": { "postcss": "^8.4.0" } }
如果使用yarn,将字段改为resolutions:
{ "resolutions": { "postcss": "^8.4.0" } }
配置完成后删除node_modules文件夹、lock文件(package-lock.json/yarn.lock),重新执行依赖安装命令即可。
- 方案3:临时屏蔽弃用警告(仅应急使用,未实际修复问题)
如果暂时无法调整依赖,可在执行构建命令时添加参数隐藏弃用警告:
Windows cmd环境:set NODE_OPTIONS=--no-deprecation && ng build
Windows PowerShell环境:$env:NODE_OPTIONS="--no-deprecation"; ng build
Linux/Mac环境:NODE_OPTIONS=--no-deprecation ng build
内容的提问来源于stack exchange,提问作者NeNaD
相关产品推荐
相关产品推荐

