webpack打包sass
首先,需要支持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、webpack编译打包Sass编译的css进js文件
cnpm install css-loader --save-dev //css-loader 是将css打包进js cnpm install style-loader --save-dev ...
- webpack配置sass模块的加载
webpack管理的项目,我们希望用sass定义样式,为了正常编译,需要做如下配置.这里不讲webpack的入门,入门的文章,我推荐这篇<webpack入门>. 为了使用sass,我们需要 ...
- Webpack打包进阶
说在前面 由于使用了React直出,页面各项性能指标使人悦目.本篇将深入探讨目前PC部落所采用webpack打包优化策略,以及探讨PC部落并未使用的 webpack Code Splitting 代码 ...
- Webpack打包构建太慢了?试试几个方法
Webpack是个很流行的打包工具,但其打包速度却一直被吐槽着 如果不用上一些打包的优化建议,单单打包两三个文件就能花上好几秒,放上几十个入口文件依赖几百上千个包的话,几分钟十几分钟妥妥的 本文整理了 ...
- vue-cli+webpack打包配置
vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...
- webpack打包和gulp打包工具详细教程
30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...
- vue webpack打包 -webkit-box-orient 失效
一行省略 overflow: hidden; white-space: nowrap; text-overflow: ellipsis; 超出两行省略 overflow: hidden; text-o ...
- webpack 打包
React自发布以来吸引了越来越多的开发者,React开发和模块管理的主流工具webpack也被大家所熟知.那么webpack有哪些优势,可以成为最主流的React开发工具呢? webpack是什么 ...
- webpack打包器简单入门
概念 webpack是一个现代javascript应用程序的模块打包器. 当webpack处理你的应用程序时,它会递归构建一个依赖图(包含了你的应用程序所需要每个模块),然后把这些模块打包到少数几个b ...
随机推荐
- Python(2.7.6) 迭代器
除了对列表.集合和字典等进行迭代,还能对其他对象进行迭代:实现 __iter__ 方法的对象.例如, 文件对象就是可迭代的: >>> dir(file) ['__class__', ...
- SharePoint 学习记事(二)
买了一本<sharepoint2010开发高级编程> 据说评价也不高. 搜到如下文章,留着看看:http://book.douban.com/review/5673741/ http:// ...
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- Java项目经验
Java项目经验 转自CSDN. Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的 ...
- Operation not allowed for reason code "7" on table 原因码 "7"的解决
对表进行任何操作都不被允许,提示SQLSTATE=57016 SQLCODE=-668 ,原因码 "7"的错误:SQL0668N Operation not allowed for ...
- 利用Ajax改变发送请求方式
由于测试的时候需要模拟Head请求,解决办法:先访问要请求的站点,然后在浏览器的控制台下执行如下代码,请求方式就为参数给的值: var xmlHttp; if (window.ActiveXObjec ...
- 仿战旗tv
模仿战旗tv做的一个小项目,还需继续完善. 以下为链接地址: https://github.com/NearMilk/ZhanqiTV
- easyui-prompt弹出框操作
效果图如下: 代码如下: $(document).ready(function () { //绑定按钮操作 $('#btnMove').click(function () { var ids = ge ...
- android 登陆案例_sd卡
代码: <?xml version="1.0"?> -<LinearLayout android:paddingTop="@dimen/activity ...
- Python 问题集
1.问题:打开Python的IDLE(集成开发环境/Integrated DeveLopment Environment) 然后在Python的shell中做如下动作时: >>>py ...