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 相关文章推荐
GreyBox技术总结(转)
Nov 23 Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
Mar 05 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
Vue之Watcher源码解析(2)
Jul 19 Javascript
JavaScript for循环 if判断语句(学习笔记)
Oct 11 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
详解Vue、element-ui、axios实现省市区三级联动
May 07 Javascript
jquery实现直播弹幕效果
Nov 28 jQuery
微信小程序云开发使用方法新手初体验
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
php桌面中心(四) 数据显示
2007/03/11 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
Vue实现购物车实例代码两则
2020/05/30 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Python群发邮件实例代码
2014/01/03 Python
Python入门篇之正则表达式
2014/10/20 Python
利用Psyco提升Python运行速度
2014/12/24 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
pandas 选择某几列的方法
2018/07/03 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
如何使用python写截屏小工具
2020/09/29 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
土木工程师岗位职责
2013/11/24 职场文书
yy结婚证婚词
2014/01/10 职场文书
推荐信模板
2014/05/09 职场文书
施工安全承诺书
2014/05/22 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL