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 相关文章推荐
Code:loadScript( )加载js的功能函数
Feb 02 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
jquery衣服颜色选取插件效果代码分享
Aug 28 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
vue中Axios的封装与API接口的管理详解
Aug 09 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
Apr 15 Javascript
微信小程序商品详情页底部弹出框
Nov 22 Javascript
JavaScript实现联动菜单特效
Jan 07 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原理之Session Gc的一个小概率Notice
2011/04/12 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
php加密解密实用类分享
2014/01/07 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
python 日志 logging模块详细解析
2020/03/31 Python
为什么python比较流行
2020/06/19 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
PHP笔试题
2012/02/22 面试题
终止合同协议书
2014/04/17 职场文书
会计学专业求职信
2014/07/17 职场文书
2014财务年度工作总结
2014/11/11 职场文书
仓管员岗位职责
2015/02/03 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers