vue如何引入sass全局变量


Posted in Javascript onJune 28, 2018

sass或者less都提供变量设置,在需求切换主题的项目中使用less或者sass变量,只要修改变量值,编译后所有用到该变量的样式都会被修改为你想要的效果,但是在vue-cli搭建的项目中,在main.js中全局引入一个scss文件,在其中定义变量在其他组件或者页面中引用报变量未定义错误,其他的样式可以正常显示,显然是编译的问题。

傻瓜式引用

在每个用到全局变量的组件都引入该全局样式文件

@import 'path/fileName.scss'

但是组件或者页面不在统一层目录下,引入的路径可能也会有差异,所以还是看看 sass-resources-loader 的解决方法吧。

sass-resources-loader引入sass全局变量

sass-resources-loader可以访问sass资源任何一个需要访问的sass模块。所以,可以使用共享变量和混合所有SASS样式,而不去每个文件都引用。

安装sass-resources-loader

npm install --save-dev sass-resources-loader

修改sass配置

build 文件夹下找到 util.js 修改sass编译器loader的配置

// 全局文件引入 当然只想编译一个文件的话可以省去这个函数
function resolveResource(name) {
 return path.resolve(__dirname, '../static/style/' + name);
}
function generateSassResourceLoader() {
 var loaders = [
  cssLoader,
  'sass-loader',
  {
   loader: 'sass-resources-loader',
   options: {
    // 多个文件时用数组的形式传入,单个文件时可以直接使用 path.resolve(__dirname, '../static/style/common.scss'
    resources: [resolveResource('common.scss')] 
   }
  }
  ];
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }
 }

修改sass配置的调用为 generateSassResourceLoader()

return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  // vue-cli默认sass配置
  // sass: generateLoaders('sass', { indentedSyntax: true }), 
  // scss: generateLoaders('sass'),
  // 新引入的sass-resources-loader
  sass: generateSassResourceLoader(),
  scss: generateSassResourceLoader(),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }

main.js 中引用 common.scss 文件,重启服务,其中定义的变量在其他组件就可以使用了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中获取元素索引的函数
Sep 10 Javascript
分享几个超级震憾的图片特效
Jan 08 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
javascript 开发之网页兼容各种浏览器
Sep 28 Javascript
Vue2.0 http请求以及loading展示实例
Mar 06 Javascript
js实现黑白div块画空心的图形
Dec 13 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 Javascript
javascript实现时钟动画
Dec 03 Javascript
小程序实现带年月选取效果的日历
Jun 27 #Javascript
浅谈Angular6的服务和依赖注入
Jun 27 #Javascript
JS实现获取进今年第几天是周几的方法分析
Jun 27 #Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 #Javascript
微信小程序中使用ECharts 异步加载数据的方法
Jun 27 #Javascript
浅谈Webpack下多环境配置的思路
Jun 27 #Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 #Javascript
You might like
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
Python类的基础入门知识
2008/11/24 Python
python抓取网页内容示例分享
2014/02/24 Python
使用Python对SQLite数据库操作
2017/04/06 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
Python2与Python3的区别点整理
2019/12/12 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
五心教育心得体会
2014/09/04 职场文书
手机被没收的检讨书
2014/10/04 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书