webpack配置sass模块的加载的方法


Posted in Javascript onJuly 30, 2017

webpack管理的项目,我们希望用sass定义样式,为了正常编译,需要做如下配置。这里不讲webpack的入门,入门的文章,我推荐这篇《webpack入门》。

为了使用sass,我们需要安装sass的依赖包

//在项目下,运行下列命令行
npm install --save-dev sass-loader
//因为sass-loader依赖于node-sass,所以还要安装node-sass
npm install --save-dev node-sass

当然了,使用样式的话,css-loader和style-loader也是必须的依赖包,如果没有安装,可以类似上述的方法安装

  1. css-loader使你能够使用类似@import 和 url(…)的方法实现 require()的功能;
  2. style-loader将所有的计算后的样式加入页面中;

二者组合在一起使你能够把样式表嵌入webpack打包后的JS文件中。 

下面是webpack.config.js文件的部分配置:

var ExtractTextPlugin = require('extract-text-webpack-plugin');//css样式从js文件中分离出来,需要通过命令行安装 extract-text-webpack-plugin依赖包
module.exports = {
 ....
 module: {
  loaders: [
   //解析.css文件
   {
    test: /\.css$/,
    loader: ExtractTextPlugin.extract("style", 'css')
   },
   //解析.vue文件
   {
    test: /\.vue$/,
    loader: 'vue'
   }, 
   //解析.scss文件,对于用 import 或 require 引入的sass文件进行加载,以及<style lang="sass">...</style>声明的内部样式进行加载
   {
    test: /\.scss$/,
    loader: ExtractTextPlugin.extract("style", 'css!sass') //这里用了样式分离出来的插件,如果不想分离出来,可以直接这样写 loader:'style!css!sass'
   }
  ]
 },
 //.vue文件的配置,以下是为了在.vue文件中使用ES6语法(必须安装babel相关的依赖包),以及把使用css或sass语法的样式提取出来,如果不需要可以忽略
 vue: {
  loaders: {
   js: 'babel', 
   css: ExtractTextPlugin.extract("css"),
   sass: ExtractTextPlugin.extract("css!sass")   
  },
 },
 plugins: [
  new ExtractTextPlugin("style.css") //提取出来的样式放在style.css文件中
 ]
 ....
}

sass的使用如下,例如:

引入外部样式,下面两种写法都可以使用:

import '../../css/test.scss'
require('../../css/test2.scss');

在.vue文件中使用

<style lang="sass">
  //sass语法样式
</style>

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

Javascript 相关文章推荐
鼠标图片振动代码
Jul 06 Javascript
模仿百度三维地图的js数据分享
May 12 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
JavaScript中调用函数的4种方式代码实例
Jul 08 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
vue点击自增和求和的实例代码
Nov 06 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 #Javascript
Vue的Flux框架之Vuex状态管理器
Jul 30 #Javascript
webpack实现热加载自动刷新的方法
Jul 30 #Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 #Javascript
Angular.js中上传指令ng-upload的基本使用教程
Jul 30 #Javascript
关于前后端json数据的发送与接收详解
Jul 30 #Javascript
jquery easyui如何实现格式化列
Jul 30 #jQuery
You might like
php常用Stream函数集介绍
2013/06/24 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
python实现ftp文件传输功能
2020/03/20 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
介绍下Java中==和equals的区别
2013/09/01 面试题
五一家具促销方案
2014/01/10 职场文书
同学会邀请书大全
2014/01/12 职场文书
大二学期个人自我评价
2014/01/13 职场文书
打架检讨书500字
2014/01/29 职场文书
《草原》教学反思
2014/02/15 职场文书
视光学专业自荐信
2014/06/24 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL