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 相关文章推荐
Javascript select下拉框操作常用方法
Nov 09 Javascript
jquery 应用代码 方便的排序功能
Feb 06 Javascript
jquery简单图片切换显示效果实现方法
Jan 14 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
Nov 09 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
Vue实现回到顶部和底部动画效果
Jul 31 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
对layui数据表格动态cols(字段)动态变化详解
Oct 25 Javascript
JavaScript实现省份城市的三级联动
Feb 11 Javascript
ES6中new Function()语法及应用实例分析
Feb 19 Javascript
vue+Element-ui实现分页效果
Nov 15 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缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php实现的通用图片处理类
2015/03/24 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
python基本语法练习实例
2017/09/19 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
更新修改后的Python模块方法
2019/03/03 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
Python脚本调试工具安装过程
2021/01/11 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
幼儿园保育员辞职信
2014/01/12 职场文书
管理工程专业求职信
2014/08/10 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript