- 新建两个文件一个是theme.less样式文件,一个是less.js文件,js文件的内容可以在 下载js文件 点击下载。
- 安装 less 和 less-loader
npm i less --save
npm i less-loader --save
- 配置环境,在webpack.config.js文件里面修改,找到css的规则,修改三个地方
- 'css-loader’的test: /.css$/ 改为 /.(css|less)/
- 'css-loader’的 importLoaders:1改为2
- 添加loader: less-loader
添加完后类似以下代码:
{
test: /\.(css|less)/, // 添加less或者css
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 2, // 改为2
},
},
{
loader: require.resolve('postcss-loader'),
options: {
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9',
],
flexbox: 'no-2009',
}),
],
},
},
// 添加less-loader
{
loader: 'less-loader'
}
]
}
- 在 index.html 页面将 less 文件和 js 文件引入,注意路径问题
<link rel="stylesheet/less" href="/theme.less">
<script type="text/javascript" src="/less.min.js"></script>
在 less 文件里定义主题变量
@primary-color: white;
body{
background: @primary-color;
/* 我这里使用的是antd框架 */
.ant-btn{
color: @primary-color;
}
}
- 在修改的页面,引入less
import less from 'less';
// 通过方法修改主题
changeTheme = (value) => {
less.modifyVars({
'@primary-color': value
});
}