问题
使用
create-react-app
创建的 react 项目在yarn eject
之后安装 antd,在 App.js 里面直接引入 Less 文件报错的解决方法
首先改一下 webpack.config.js 配置,比照 SASS 的配置加上关于 Less 文件的 loader 解析1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;
{
test: lessRegex,
exclude: lessModuleRegex,
use: getStyleLoaders({
importLoaders: 2,
sourceMap: isEnvProduction && shouldUseSourceMap,
},
'less-loader'
),
sideEffects: true,
},
{
test: lessModuleRegex,
use: getStyleLoaders({
importLoaders: 2,
sourceMap: isEnvProduction && shouldUseSourceMap,
modules: true,
getLocalIdent: getCSSModuleLocalIdent,
},
'less-loader'
),
},然后由于一些问题所以再加上一个配置
1
2
3
4
5
6
7
8
9
10if (preProcessor) {
loaders.push({
loader: require.resolve(preProcessor),
options: {
sourceMap: isEnvProduction && shouldUseSourceMap,
// 添加上下面这一行
javascriptEnabled: true
}
});
}
- react 项目开配置后如何使用
babel-plugin-import
插件进行组件按需加载
yarn add babel-plugin-import - 添加完 Less 之后自定义 Less 变量的问题
webpack.config.js 里面更改为1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24if (preProcessor) {
let loader = require.resolve(preProcessor);
if (preProcessor === "less-loader") {
loader = {
loader,
options: {
modifyVars: {
"primary-color": "#DC143C",
"link-color": "#1DA57A",
"border-radius-base": "2px"
},
javascriptEnabled: true
}
};
}
loaders.push(loader);
// loaders.push({
// loader: require.resolve(preProcessor),
// options: {
// sourceMap: isEnvProduction && shouldUseSourceMap,
// javascriptEnabled: true
// },
// });
}