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中Array 对象相关的几个方法
Dec 22 Javascript
JQuery 学习笔记01 JQuery初接触
May 06 Javascript
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
Sep 03 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
Mar 21 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
Dec 06 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
vue + element-ui实现简洁的导入导出功能
Dec 22 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
JS面向对象之多选框实现
Jan 17 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显示Facebook的粉丝数量方法
2014/01/08 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
动态加载js的几种方法
2006/10/23 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
JS全角与半角转化实例(分享)
2017/07/04 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
Python中tell()方法的使用详解
2015/05/24 Python
Python读写unicode文件的方法
2015/07/10 Python
python爬取51job中hr的邮箱
2016/05/14 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
办公室岗位职责
2014/02/12 职场文书
机房搬迁方案
2014/05/01 职场文书
普通话演讲稿
2014/09/03 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python