首先,需要支持sass,不管是有ruby环境的sass,还是node-sass,用npm装的sass模块,bootstrap-sass,gulp-sass。。总归要有一个吧!(这里采用node-sass)

其次,还需要webpack的sass-loader,让loader起作用的方法

要么给scss 文件做个独立entry,
要么在现在entry(或它的依赖)里import 你的scss 文件,
要么在主模块ts文件中require 需要的 scss文件。
不然scss 的loader 都识别不了scss 文件。

然后,配置plugins和loaders

var webpack = require('webpack');
var autoprefixer = require('autoprefixer');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: {
main:['./app/main.ts','./app/sass/main-1.scss','./app/sass/main-a.scss','./app/sass/main2.scss'],
//入口中多个 css或者 scss都会被 allChunks: true 设置成打包到一个css文件,
//比如此处的 main-1.scss,main-a.scss,main2.scss都会被打包成 main.css
vendor:[ ]
},
externals:{
"jquery":"jQuery"
},
output: {
path: './dist',
filename: 'js/app.bundle.js',
publicPath:'/'
},
module: {
loaders: [
{test: /\.ts$/, loader: 'ts'},
{test: /\.html$/, loader: 'raw'},
{test: /\.css$/, loader: ExtractTextPlugin.extract('style', 'css!postcss')},
{test: /\.scss$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!sass-loader")}
]
},
postcss: [autoprefixer()],
resolve: {
extensions: ['', '.js', '.ts', '.scss']
},
plugins: [
new ExtractTextPlugin("assets/css/[name].css", {publicPath: '/assets/',allChunks: true}),
//ExtractTextPlugin.extract 第二个参数(或拆分为多个参数)中 loader 的执行顺序是从右到左,
//即先对引入的 .sass 使用 sass loader 得到编译后的 css 再使用 css-loader 按照正常 css-loader 的方式处理。
//sass-loader的”-loader"是可以省略的,所以会看到很多人写的config里面全是"css!sass"什么的,用!分隔。
new HtmlWebpackPlugin({template: './app/index.html'}),
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
//filename : 'vendor_[chunkhash].js',
filename : 'js/vendor.js',
minChunks: Infinity
}),
/*new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),*/
new webpack.DefinePlugin({
app: {
environment: JSON.stringify(process.env.APP_ENVIRONMENT || 'development')
}
})
] };
ExtractTextPlugin.extract([notExtractLoader], loader, [options]) //路径文件名都是options里的 

最后,npm start启动webpack进行打包。

参考webpack文档:http://webpack.github.io/docs/stylesheets.html#separate-css-bundle

参考npm ExtractTextPlugin文档:https://www.npmjs.com/package/extract-text-webpack-plugin

更多webpack实用配置:https://segmentfault.com/a/1190000005866410

关于 webpack sass-loader 的url问题: https://segmentfault.com/q/1010000006842394/a-1020000006843757

各种loader综合解析:https://segmentfault.com/a/1190000002551952

webpack打包sass的更多相关文章

  1. 1、webpack编译打包Sass编译的css进js文件

    cnpm install css-loader --save-dev    //css-loader 是将css打包进js cnpm install style-loader --save-dev   ...

  2. webpack配置sass模块的加载

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

  3. Webpack打包进阶

    说在前面 由于使用了React直出,页面各项性能指标使人悦目.本篇将深入探讨目前PC部落所采用webpack打包优化策略,以及探讨PC部落并未使用的 webpack Code Splitting 代码 ...

  4. Webpack打包构建太慢了?试试几个方法

    Webpack是个很流行的打包工具,但其打包速度却一直被吐槽着 如果不用上一些打包的优化建议,单单打包两三个文件就能花上好几秒,放上几十个入口文件依赖几百上千个包的话,几分钟十几分钟妥妥的 本文整理了 ...

  5. vue-cli+webpack打包配置

    vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...

  6. webpack打包和gulp打包工具详细教程

    30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...

  7. vue webpack打包 -webkit-box-orient 失效

    一行省略 overflow: hidden; white-space: nowrap; text-overflow: ellipsis; 超出两行省略 overflow: hidden; text-o ...

  8. webpack 打包

    React自发布以来吸引了越来越多的开发者,React开发和模块管理的主流工具webpack也被大家所熟知.那么webpack有哪些优势,可以成为最主流的React开发工具呢? webpack是什么 ...

  9. webpack打包器简单入门

    概念 webpack是一个现代javascript应用程序的模块打包器. 当webpack处理你的应用程序时,它会递归构建一个依赖图(包含了你的应用程序所需要每个模块),然后把这些模块打包到少数几个b ...

随机推荐

  1. [gulp] gulp lint 忽略文件

    how does the ignore parameter works in gulp and nodemon? 参考了 前端构建工具gulp入门教程,里面的lint我不需要检查所有js下面的文件,因 ...

  2. Base64 编码

    Base64 字母表 Base64 编码将一个 8 位字节序列拆成 6 位的片段,并为每个 6 位的片段分配一个字符,这个字符是 Base64 字母表中的 64 个字符之一. Wert Zeichen ...

  3. ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)

    ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...

  4. 复制pdf文字出来是乱码的一种可能的解决方案

    最近在处理一个pdf文件,是一个地图文件,上面带各种文字的标注,地图比较大,而且文字信息比较多而且分散.因为字体的问题,在我的windows电脑上虽然可以正常显示,但是复制出来的文字都是方块,而且对应 ...

  5. Java的基础概念

    JDK (Java Development Kit) Java Developer Kit contains tools needed to develop the Java programs, an ...

  6. C语言经典案例

    题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%:20万到40万 ...

  7. 暑假集训(2)第七弹 -----今年暑假不AC(hdu2037)

    J - 今年暑假不AC Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64 ...

  8. makefile-0711-168 SEVERE ERROR: Input file:

    ld: 0711-168 SEVERE ERROR: Input file: /cicm/commlib/include        Input files must be regular file ...

  9. n个骰子的点数

    把n个骰子扔在地上,所有骰子朝上的一面的点数之和为s.输入n,打印出s的所有可能的值和出现的概率. 解法一:基于递归求骰子点数. /////////////////基于递归求骰子点数///////// ...

  10. dd命令测试linux磁盘读写速度

    1.先熟悉两个特殊的设备:    (1)/dev/null:回收站.无底洞.    (2)/dev/zero:产生字符. 2.测试磁盘写能力    time dd if=/dev/zero of=/t ...