vue项目中使用scss的方法步骤


Posted in Javascript onMay 16, 2019

一 概述

随着sass/less等css预处理器的出现,编写css变的越来越有乐趣。所以现在越来越多的人在项目中喜欢使用scss或者less。(我自己就是一个)。由于最近在写一个vue项目。所以就把写项目期间每天的一些知识点写在博客里。所以最近的博客应该都会和vue有关。今天要和大家分享的就是如何在vue项目中引入scss(引入less也类似)

二 vue中引入scss

2.1 vue-loader

在讲如何在vue项目中使用scss之前,我们先来简单了解一个概念,那就是vue-loader。vue-loader是什么东西呢?vue-loader其实就是一个webpack的loader。用来把vue组件转换成可部署的js,html,css模块。所以我们如果要想再vue项目中使用scss,肯定要告诉vue-loader怎么样解析我的scss文件。

不了解webpack的同学可以先去自行百度。我这里就放一张图,看完大家可以也就能知道webpack能做些什么事情了。

vue项目中使用scss的方法步骤

2.2 loader配置

在webpack中,所有预处理器都要匹配相应的loader,vue-loader允许其他的webpack-loader处理组件中的一部分吗,然后它根据lang属性自动判断出要使用的loaders。所以,其实只要安装处理sass/scss的loader。就能在vue中使用scss了。

现在我们来安装sass/scss loader

npm install sass-loader node-sass --save-dev

2.3 为什么无需配置

我们前面说到,vue-loader允许能根据lang属性自动判断出要使用的loaders。它是怎么样做到的?有这么神奇嘛?我们下面来看一看最核心部分的源代码

exports.cssLoaders = function (options) {
 options = options || {}

 var cssLoader = {
  loader: 'css-loader',
  options: {
   minimize: process.env.NODE_ENV === 'production',
   sourceMap: options.sourceMap
  }
 }

 // generate loader string to be used with extract text plugin
 function generateLoaders (loader, loaderOptions) {
  var loaders = [cssLoader]
  if (loader) {
   loaders.push({
    loader: loader + '-loader',
    options: Object.assign({}, loaderOptions, {
     sourceMap: options.sourceMap
    })
   })
  }

  // Extract CSS when that option is specified
  // (which is the case during production build)
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }
 }

 // https://vue-loader.vuejs.org/en/configurations/extract-css.html
 return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  sass: generateLoaders('sass', { indentedSyntax: true }),
  scss: generateLoaders('sass'),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }
}

就是上述这段代码让vue-loader有了这种能力,它会根据不同的文件去使用不同的loader

2.4 使用scss

这样你就可以愉快的使用scss了。

<style scoped lang="sass">
   xxxx
   xxxx
</style>

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

Javascript 相关文章推荐
如何用jquery控制表格奇偶行及活动行颜色
Apr 20 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
Apr 30 Javascript
chrome调试javascript详解
Oct 21 Javascript
vue.js学习之UI组件开发教程
Jul 03 Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 Javascript
webpack源码之loader机制详解
Apr 06 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
微信小程序云开发之数据库操作
May 18 Javascript
JavaScrip数组去重操作实例小结
Jun 20 Javascript
js getBoundingClientRect使用方法详解
Jul 17 Javascript
js 动态校验开始结束时间的实现代码
May 25 Javascript
微信小程序云开发使用方法新手初体验
May 16 #Javascript
angular多语言配置详解
May 16 #Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 #Javascript
Django模板继承 extend标签实例代码详解
May 16 #Javascript
vue视图不更新情况详解
May 16 #Javascript
详解如何写出一个利于扩展的vue路由配置
May 16 #Javascript
Vue中props的详解
May 16 #Javascript
You might like
收音机的保养
2021/03/01 无线电
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
smarty内置函数section的用法
2015/01/22 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
Python3 操作符重载方法示例
2017/11/23 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
Python中format()格式输出全解
2019/04/12 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Python pip配置国内源的方法
2020/02/14 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
生产部厂长助理职位说明书
2014/03/03 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
2014年个人年终总结
2015/03/09 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
贷款收入证明范本
2015/06/12 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
详解MySQL的内连接和外连接
2023/05/08 MySQL