第七星尘的独立博客

前端框架ElementUI使用sass离线生成自定义主题

前言

大概是人员离职、缺乏人力维护等相关原因,前端框架ElementUI框架官网的在线生成主题功能总是出现503错误。为此我专门总结了一篇教程,如何使用sass离线生成自定义主题, 从而摆脱对ElementUI官网的依赖。

安装依赖

// sass-loader需要指定低版本,不然会报错
npm install --save-dev  sass-loader@7.0 
npm install style-loader --save-dev 
npm install node-sass --save-dev  

配置

在 build 文件夹下的 webpack.base.conf.js 找到 module 下的 rules 配置, 在该配置数组末尾增加一个元素:


{
    test: /.sass$/,
    loaders: ['style', 'css', 'sass']
}

意思是为sass文件指定loader解析。

新建一个样式文件,例如 ./src/assets/element-variables.scss,写入以下内容:


/* 改变主题色变量 */
$--color-primary: #409EFF;

/* 改变 icon 字体路径变量,一定要写,不然错误 */
$--font-path: '~element-ui/lib/theme-chalk/fonts';

@import "~element-ui/packages/theme-chalk/src/index";

之后,在项目的入口文件./src/main.js中,直接引入以上样式文件即可(无需引入 Element 编译好的 CSS 文件):


import Vue from 'vue'
import Element from 'element-ui'
import './assets/element-variables.scss'

Vue.use(Element)

后面如果要改变样式值,可以直接在element-variables.scss文件修改(参考改变主题色变量的写法) 。
关于主题变量有哪些key和取值,可以参考文件 node_modules/element-ui/packages/theme-chalk/src/common/var.scss
如果你之前有在官网生成了config.json,则可以把里面的值复制出来,写到element-variables.scss里面。

如果你想参考一个生产环境的配置例子,请参考 https://github.com/star7th/showdoc/tree/master/web_src

 如无特殊说明,本站皆为原创。转载请注明来自第七星尘的独立博客《前端框架ElementUI使用sass离线生成自定义主题》

评论