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 相关文章推荐
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
jquery实现控制表格行高亮实例
Jun 05 Javascript
表单序列化与jq中的serialize使用示例
Feb 21 Javascript
js实现YouKu的漂亮搜索框效果
Aug 19 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
jquery延迟对象解析
Oct 26 Javascript
微信小程序 获取微信OpenId详解及实例代码
Oct 31 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
JavaScript模拟实现封装的三种方式及写法区别
Oct 27 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
Sep 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 获取目录下的图片并随机显示的代码
2009/12/28 PHP
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
JavaScript中的闭包
2016/02/24 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
横向对比分析Python解析XML的四种方式
2016/03/30 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
Python输入二维数组方法
2018/04/13 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
银行存款证明样本
2014/01/17 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
迎新晚会邀请函
2014/02/01 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
税务会计岗位职责
2015/04/02 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
Python如何配置环境变量详解
2021/05/18 Python