前言
eject 不可逆,想试不 eject 情况下改 webpack 配置。
主要介绍的是配置 less-loader 遇到的坑。
正文
1. react-app-rewired + customize-cra
一开始按照 customize-cra - api.md 在 config-overrides.js 中配置 less-loader,然后报错 options has an unknown property 'plugins'. These properties are valid: object { postcssOptions?, execute?, sourceMap?, implementation? };
原因:postcss-loader 版本原因,有新的配置写法。
源码 customize-cra 1.0.0 addLessLoader 中
// addLessLoader - getStyleLoaders
{
loader: require.resolve('postcss-loader'),
options: {
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
require('postcss-preset-env')({
autoprefixer: {
flexbox: 'no-2009',
},
stage: 3,
}),
postcssNormalize(),
],
sourceMap: isEnvProduction && shouldUseSourceMap,
},
}
{
loader: 'postcss-loader',
options: {
postcssOptions: {
plugins: [
[
'postcss-preset-env',
{
// Options
},
],
],
},
},
}
不难看出少了 postcssOptions。当然,在报错信息中是有提