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 相关文章推荐
提示$ is not defined错误分析及解决
Apr 09 Javascript
get(0).tagName获得作用标签示例代码
Oct 08 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
手机端页面rem宽度自适应脚本
May 20 Javascript
js鼠标点击图片切换效果代码分享
Aug 26 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
Aug 20 Javascript
js实现带缓动动画的导航栏效果
Jan 16 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
node中的cookie的具体使用
Sep 13 Javascript
angularJs中json数据转换与本地存储的实例
Oct 08 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 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的正则处理函数总结分析
2008/06/20 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
python脚本内运行linux命令的方法
2015/07/02 Python
5种Python单例模式的实现方式
2016/01/14 Python
Python中字符串的处理技巧分享
2016/09/17 Python
python九九乘法表的实例
2017/09/26 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
Python Map 函数的使用
2020/08/28 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
中专毕业生的自我鉴定
2013/12/01 职场文书
便利店的创业计划书
2014/01/15 职场文书
新书发布会策划方案
2014/06/09 职场文书
经济管理自荐书
2014/06/09 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
金融与证券专业求职信
2014/06/22 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
师德师风事迹材料
2014/12/20 职场文书
立案决定书范文
2015/06/24 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
MySQL快速插入一亿测试数据
2021/06/23 MySQL
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏