react项目在自动部署中的各种情况
一:编译失败
....
Treating warnings as errors because process.env.CI = true.
Most CI servers set it automatically.
Failed to compile.
...
原因:默认环境变量CI为true,这个时候会把warining当初error来处理,在build的时候,有waring出现,就会当error抛出,构建失败。
解决:让服务端设置gitlab的process.env.CI = false;
二:关于mini-css-extract-plugin插件过多的warning警告
...
chunk 30 [mini-css-extract-plugin]
Conflicting order. Following module has been added:
* css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[9].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[9].use[2]!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[9].use[3]!./node_modules/antd/es/steps/style/index.less
despite it was not able to fulfill desired ordering with these modules:
* css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[9].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[9].use[2]!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[9].use[3]!./node_modules/antd/es/typography/style/index.less
...
// https://github.com/webpack-contrib/mini-css-extract-plugin/issues/250#issuecomment-415345126
解决方案:设置MiniCssExtractPlugin的ignoreOrder为true
三:提示webpack相关错误,主要是从vue项目分支就地复用改成react
TypeError: The ‘compilation‘ argument must be an instance of Compilation或者
Cannot read property 'tap' of undefined
原因:node_modules 或者 package-lock 或者 cache 导致的vue项目使用的webpack版本与react内部使用的webpack版本冲突
解决办法:删除环境上的 node_modules包,比如gitlab-ci.yml上 删除后再npm install