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 相关文章推荐
TBCompressor js代码压缩
Jan 05 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
javascript实用方法总结
Feb 06 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
Jquery技巧(必须掌握)
Mar 16 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
在 React、Vue项目中使用SVG的方法
Feb 09 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
使用vue-router在Vue页面之间传递数据的方法
Jul 15 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
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
笑谈配置,使用Smarty技术
2007/01/04 PHP
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python对象转JSON字符串的方法
2016/04/27 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
Pycharm github配置实现过程图解
2020/10/13 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
会计专业自我鉴定范文
2013/10/06 职场文书
优秀企业获奖感言
2014/02/01 职场文书
安全生产宣传标语
2014/06/06 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
2015年班组工作总结
2015/04/20 职场文书
2015年公务员工作总结
2015/04/24 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
《海上日出》教学反思
2016/02/23 职场文书
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS