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 相关文章推荐
用JS判别浏览器种类以及IE版本的几种方法小结
Aug 02 Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
JavaScript编程中的Promise使用大全
Jul 28 Javascript
跟我学习javascript的undefined与null
Nov 17 Javascript
浅述Javascript的外部对象
Dec 07 Javascript
vue组件父与子通信详解(一)
Nov 07 Javascript
js中url对象化管理分析
Dec 29 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 Javascript
详解Js里的for…in和for…of的用法
Mar 28 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
Sep 12 Javascript
详解微信小程序动画Animation执行过程
Sep 23 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
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
Python中下划线的使用方法
2015/03/27 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
详解Python中的四种队列
2018/05/21 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
《大自然的语言》教学反思
2014/04/08 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
经典祝酒词大全
2015/08/12 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS