babel升级 6.x -> 7.x;eslint升级 4.x -> 7.x; webpack升级 3.x -> 4.x; extract-text-webpack-plugin 3.0.0 -> 4.0.0-beta.0

Babel 升级

1、是升级 package.json 的版本,

2、是修改 .babelrc。

3、最后是手动调整其他一些配套的东西

前两个步骤,直接通过在项目文件夹下运行 npx babel-upgrade --write 即可

官方升级指南:https://www.babeljs.cn/docs/v7-migration

 

babel升级之后,项目报错了,经排查之后,发现是babel自动添加了 use strict 导致某个地方获取到的window对象是undefined所以报错。

所以在 .babelrc 里面添加了 

  "plugins": [
    ["@babel/plugin-transform-modules-commonjs", {
      "strictMode": false
    }]
 ]

作用:不添加严格模式

 

这个时候项目就可以跑起来了。

可选链也可以直接使用了,但是空值合并符还是会报错。看了babel文档之后,发现是babel配置里面的插件少了 “@babel/plugin-proposal-nullish-coalescing-operator”

但是加了之后还是不行,一样报错。

 eslint升级

原因:babel虽然已经升级并且已经支持空值合并符,但是eslint版本太低,它不支持空值合并符,所以会报错,因此再更新eslint相关包的版本。

 更新之后不需要修改相关代码,但是会默认添加一些新的eslint规则,可以自己视情况在.eslintrc里面修改

 

webpack升级

 

 

webpack 4 对应的 extract-text-webpack-plugin 版本需要是 4.0.0-beta.0

contenthash 改为 md5:contenthash:hex:20

 

chunksSortMode: 'dependency' 改为 
chunksSortMode: 'auto'

 

posted @ 2021-09-17 17:25  蒋大忙  阅读(803)  评论(0编辑  收藏  举报