uni-app编译报caniuse-lite is outdated的处理方案

caniuse库过期问题的原因

uni-app的编译器是基于npm的,依赖了众多包括mpvue、webpack在内的npm库,这些库又引用了一个三方库caniuser-lite。
caniuser-lite这个库的代码里有个浏览器兼容数据的更新检查,过老的数据影响自动补齐css前缀。
开发者平时写uni-app时并不需要手动补浏览器的css前缀,就是因为这个库在自动补前缀。
这个库它自己每半年过期一次,过期后会报错如下:
Browserslist: caniuse-lite is outdated. Please run next command npm update caniuse-lite browserslist``

这个报警不影响编译成功,只是告警
对于熟悉npm的开发者,这个报警不足为奇,按命令提示更新即可。
但HBuilderX的很多开发者不熟悉npm,遇到问题可能就不知该怎么办了。
目前可用的解决方案如下几种:

解决方案1,升级 HBuilderX 或 cli

不要用半年前的 HBuilderX,或 cli ,持续保持升级。(目前 HBuilderX 正式版确实未及时更新导致过期,很快会发更新解决。另外 alpha 版是正常的)

解决方案2,在老版 HBuilderX 下手动升级 caniuse-lite 的 npm 库

如果不想升级 HBuilderX ,也可在老版下解决问题。

  • 项目是 HBuilderX 创建的
    • 打开 HBuilderX 的安装目录, HBuilderX/plugins/uniapp-cli
      删除 node_modules 以及 package-lock.json
    • 打开 HBuilderX 的安装目录, HBuilderX/plugins/uniapp-cli
      删除 node_modules 以及 package-lock.json
  • 如果你的项目是 cli 创建的,请自行在 cli 环境下升级 npm 包

image.png

你可能感兴趣的:(前端技术,uni-app,javascript,前端)