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 相关文章推荐
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
js jquery数组介绍
Jul 15 Javascript
js实现在同一窗口浏览图片
Sep 17 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
微信小程序scroll-view点击项自动居中效果的实现
Mar 25 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操作xml代码
2010/06/17 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
2017/11/27 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
Python处理XML格式数据的方法详解
2017/03/21 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
python爬虫超时的处理的实例
2018/12/19 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
python实现指定ip端口扫描方式
2019/12/17 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
书法大赛策划方案
2014/06/04 职场文书
应用心理学专业求职信
2014/08/04 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
Python基础之元类详解
2021/04/29 Python
SpringBoot生成License的实现示例
2021/06/16 Java/Android