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 相关文章推荐
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
javascript中的对象创建 实例附注释
Feb 08 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 Javascript
简介AngularJS中使用factory和service的方法
Jun 17 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
vue实现鼠标移入移出事件代码实例
Mar 27 Javascript
浅谈JS的原型和原型链
Jun 04 Javascript
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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
关于页面优化和伪静态
2009/10/11 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
js实现秒表计时器
2019/12/16 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
Python实现全角半角字符互转的方法
2016/11/28 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
东方电视购物:东方CJ
2016/10/12 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
低碳生活倡议书
2014/04/14 职场文书
学生评语大全
2014/04/18 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
导游欢送词
2015/01/31 职场文书
挂职个人工作总结
2015/03/05 职场文书
学校党支部承诺书
2015/04/30 职场文书
交通安全月活动总结
2015/05/08 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书