vue-cli构建项目使用 less的方法


Posted in Javascript onOctober 04, 2017

在vue-cli中构建的项目是可以使用less的,但是查看package.json可以发现,并没有less相关的插件,所以我们需要自行安装。

第一步:安装

npm install less less-loader --save-dev

即通过npm安装less和less-loader,并记录到devDependencies中,因为这是我们在开发中使用的而非在生产中使用,所以就不将之记录在 dependencies 中。

第二步:在配置文件中配置

实际上如果我们通过vue-cli来构建项目,这一步是可以省略的。

在webpack.dev.conf.js中,我们可以看到下面的代码:

module: {
  rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
 },

即webpack.dev.conf.js在合并了webpack.base.conf.js的基础上又添加了dev环境下的module。 

注意:在上面的代码中,我们还可以使用loaders来代替rules, 他们的含义是一样的。

在build文件夹下有一个utils.js文件,这个文件提供了一些通用的方法,供webpack.dev.conf.js和webpack.prod.conf.js使用。 其中styleLoaders方法如下:

// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
 var output = []
 var loaders = exports.cssLoaders(options)
 for (var extension in loaders) {
  var loader = loaders[extension]
  output.push({
   test: new RegExp('\\.' + extension + '$'),
   use: loader
  })
 }
 return output
}

通过这个方法可以对大多数css预处理进行了配置,具体配置在cssLoaders方法中。

第三步:在单组件.vue中使用

如下所示:

<template>
 <div class="hello">
  <h2>{{msg}}</h2>
  <h2>Essential Links</h2>
  <ul>
   <li>Core Docs</li>
  </ul>
  <h2>Ecosystem</h2>
 </div>
</template>

<script>
export default {
 name: 'hello',
 data: function () {
  return {
   msg: "Welcome to your vue.js app"
  }
 }

}
</script>

<style scoped lang="less">
 .hello {
  color: red;
  font-size: 0.45rem;
  h2 {
   color: blue;
  }
 }
</style>

需要注意一下几点:

1.已经在webpack中配置了,所以这里不需要引入任何less文件。

2.在style中声明lang="less"。 注意: scoped的作用仅仅是限定css的作用域,防止变量污染。

3.这样就可以根据less的语法使用了。

补充:通过下面的代码就不难理解问什么scoped可以隔离作用域了。 即给不同组件的所有html添加一个属性,然后在css中使用属性选择器来防止作用域的污染,实在聪明!!!

vue-cli构建项目使用 less的方法

把scoped去掉之后,我们就可以发现已经没有额外的属性了: 

vue-cli构建项目使用 less的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
javascript模拟枚举的简单实例
Mar 06 Javascript
推荐9款炫酷的基于jquery的页面特效
Dec 07 Javascript
JavaScript函数详解
Feb 27 Javascript
浅析js绑定事件的常用方法
May 15 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
Dec 29 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
微信小程序wx.previewImage预览图片实例详解
Dec 07 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 Javascript
vue.js实现三级菜单效果
Oct 19 Javascript
vue2路由基本用法实例分析
Mar 06 Javascript
浅谈Angular2 模块懒加载的方法
Oct 04 #Javascript
浅谈angular2路由预加载策略
Oct 04 #Javascript
浅谈Angular路由复用策略
Oct 04 #Javascript
React-Native之定时器Timer的实现代码
Oct 04 #Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 #Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 #Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 #Javascript
You might like
php仿ZOL分页类代码
2008/10/02 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
vue如何判断dom的class
2018/04/26 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
python列表推导式操作解析
2019/11/26 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
网站美工岗位职责
2014/04/02 职场文书
初中班级口号
2014/06/09 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL
Golang入门之计时器
2022/05/04 Golang