Vue全局使用less样式,组件使用全局样式文件中定义的变量操作


Posted in Javascript onOctober 21, 2020

当你想要在vue项目的一个组件中使用全局样式文件中定义好的变量,此时只在main.js中import是不行的。

目录结构如下:

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

即在MHeader.vue中想要使用src下的less下的variables.less文件中定义好的变量。

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

此时,只用import在main.js中导入variables.less文件是会报错的。

解决办法:

1、安装less和less-loader

npm i less less-loader -D

2、要想全局使用还需使用一个插件( sass-resources-loader ),没有写错,就是sass

npm i sass-resources-loader -D

3、安装完sass-resources-loader后,配置webpack,找到build/utils.js文件,在cssLoaders函数中添加使用全局less函数

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

// 增加全局使用less函数
 function lessResourceLoader() {
 var loaders = [
  cssLoader,
  'less-loader',
  {
  loader: 'sass-resources-loader',
  options: {
   resources: [
   path.resolve(__dirname, '../src/assets/less/variables.less'), //定义全局变量的文件路径
   ]
  }
  }
 ];
 if (options.extract) {
  return ExtractTextPlugin.extract({
  use: loaders,
  fallback: 'vue-style-loader'
  })
 } else {
  return ['vue-style-loader'].concat(loaders)
 }
 }

并在return中用你定义的lessResourceLoader函数替换less: generateLoaders('less')这个函数。

return {
 css: generateLoaders(),
 postcss: generateLoaders(),
 less: lessResourceLoader('less'),
 sass: generateLoaders('sass', { indentedSyntax: true }),
 scss: generateLoaders('sass'),
 stylus: generateLoaders('stylus'),
 styl: generateLoaders('stylus')
 }

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

4、完成之后就可以重新运行项目了

npm run dev

补充知识:Vue less使用scope时渗入修改子组件样式

我就废话不多说了,大家还是直接看代码吧~

@aaa: ~'>>>';
.wrap {
  @{aaa} .component1 {
    width: 120px;
  }
/deep/ .component2 {
    width: 130px;

}
}

以上这篇Vue全局使用less样式,组件使用全局样式文件中定义的变量操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
拖动一个HTML元素
Dec 22 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
Dec 25 Javascript
jQuery on方法传递参数示例
Dec 09 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
关于vue.js发布后路径引用的问题解决
Aug 15 Javascript
详解ES6中的三种异步解决方案
Jun 28 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 Javascript
微信小程序解除10个请求并发限制
Dec 18 Javascript
vue的for循环使用方法
Feb 12 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
Apr 20 Javascript
jQuery冲突问题解决方法
Jan 19 jQuery
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 Vue.js
js 图片懒加载的实现
Oct 21 #Javascript
uniapp实现可以左右滑动导航栏
Oct 21 #Javascript
解决vue-loader加载不上的问题
Oct 21 #Javascript
Vue实现返回顶部按钮实例代码
Oct 21 #Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 #Javascript
uniapp实现可滑动选项卡
Oct 21 #Javascript
element中table高度自适应的实现
Oct 21 #Javascript
You might like
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
js实现可输入可选择的select下拉框
2016/12/21 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
python执行等待程序直到第二天零点的方法
2015/04/23 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
Python实现多线程抓取妹子图
2015/08/08 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
pandas数据处理之绘图的实现
2020/06/15 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
学生党员思想汇报
2013/12/28 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
物理学专业求职信
2014/07/04 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL