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 相关文章推荐
jquery 弹出层实现代码
Oct 30 Javascript
初试jQuery EasyUI 使用介绍
Apr 01 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
Dec 20 Javascript
JavaScript Scoping and Hoisting 翻译
Jul 03 Javascript
JavaScript动态改变表格单元格内容的方法
Mar 30 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
Sep 05 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
Sep 11 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
js canvas实现放大镜查看图片功能
Jun 08 Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
使用async-validator编写Form组件的方法
Jan 10 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 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
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
js计算精度问题小结
2013/04/22 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
python中的格式化输出用法总结
2016/07/28 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python文本数据相似度的度量
2018/03/12 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
python 实现简易的记事本
2020/11/30 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
有机童装:Toby Tiger
2018/05/23 全球购物
进口业务员岗位职责
2014/04/06 职场文书
教师考核材料
2014/05/21 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android