$ cnpm install @uyun/cli-webpack-less-themes
基于 css 原生变量进行换肤,在编译的过程中会根据标准变量将less文件中颜色变量修改成 css 变量。并提供换肤编辑功能,以及变量依赖关系图
config.module.rule('less').oneOf('normal').use('less-loader')
.options({
javascriptEnabled: true,
plugins: [],
modifyVars: {
'@color': 'var(--color)'
},
sourceMap: true
})
安装 @uyun/cli-webpack-less-themes
yarn add -D @uyun/cli-webpack-less-themes
// 标准基础变量
const { modifyVars } = require('./modifyVars')()
我们应该打造一个 css 变量控制台页面
运行 @uyun/components 项目中 yarn dist
依然基于less 插件实现
module.exports = {
install: function install(less, pluginManager, functions) {
pluginManager.addVisitor({
isPreEvalVisitor: true,
run: function run(tree) {
Promise.resolve().then(() => {
// 收集变量
})
return tree;
}
});
}
};
site/template/Layout/index.jsx
// 入口导入
import '@uyun/cli-webpack-less-themes/lib/browser'
bisheng.config.js
const lessVarsPugin = require('@uyun/cli-webpack-less-themes/lib/less-pugin')
const { modifyVars } = require('@uyun/cli-webpack-less-themes/lib/modifyVars')()
{
loader: 'less-loader',
options: {
plugins: [lessVarsPugin],
modifyVars
}
}
yarn start
F1 查看变量关系图 F2 或点击右侧修改基础变量
基础组件和业务组件项目中 yarn start
脚手架配置文件 everest.config.js
plugins: [
// enableThemePanel 启用换肤面板
['@uyun/cli-webpack-less-themes', { enableThemePanel: true }]
]
F1 查看变量关系图 F2 或点击右侧修改基础变量
cmdb 项目中配置插件
yarn start
Copyright 2013 - present © cnpmjs.org