github仓库:https://github.com/llcMite/webpack.git

1)html-webpack-plugin    (用于模板生成html,自动引入output文件)

cnpm install html-webpack-plugin --save-dev
const HtmlWebpackPlugin = require('html-webpack-plugin');
plugins:[
new HtmlWebpackPlugin({
title: 'reactTest',
filename:'index.html',
template:'./index.html' //模板路径
}) ]

2)clean-webpack-plugin  (用于清理output出来的文件)

cnpm install clean-webpack-plugin --save-dev
plugins:[
new CleanWebpackPlugin(['dist']), //这里我output是dist文件夹,所以清理的dist
]

3)webpack.optimize.CommonsChunkPlugin   (分离第三方库,这里我用的是react)

var path=require('path');
var webpack=require('webpack'); module.exports={
//入口
entry:{
index:'./index.js',
vendor:['react','react-dom']
},
//输出
output:{
path:path.resolve(__dirname,'dist'),
filename:'[name].[hash].js',
},
module:{
...
},
plugins:[
new webpack.optimize.CommonsChunkPlugin({
names: ["vendor", "manifest"]
})
]
}

4)optimize-css-assets-webpack-plugin   uglifyjs-webpack-plugin   (压缩css及js)

cnpm install uglifyjs-webpack-plugin optimize-css-assets-webpack-plugin --save-dev
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); plugins:[
// 1、压缩CSS
new OptimizeCSSPlugin({
cssProcessorOptions: {
safe: true
}
}),
//2、压缩JS
new UglifyJSPlugin({
compress: { warnings: false },
// 是否需要sourcePap
// sourceMap: true
}),
]

 5)postcss-loader

cnpm install postcss-loader postcss-import postcss-cssnext --save-dev

配置一个postcss.config.js

module.exports = {
plugins: {
// css 内可以使用 @import 其他CSS文件
'postcss-import': {},
// CSS内可以使用 css3+ 新语法(autoprefixer已经内置到postcss-cssnext)
'postcss-cssnext': {
browsers: ['last 2 versions', '> 5%']
}
}
}

配置webpack.config.js

loaders: [
...
{
test: /\.css$/,
use: ['style-loader','css-loader', { loader: 'postcss-loader', options: { sourceMap: true } }]
},
{
test: /\.less$/,
use:['style-loader', 'css-loader','less-loader', { loader: 'postcss-loader', options: { sourceMap: true } } ]
},
],

最新文章

  1. 【JS基础】算法
  2. 剖析twemproxy前言
  3. 20个命令行工具监控Linux系统性能
  4. Beta项目冲刺汇总贴
  5. 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面
  6. BZOJ 1218: [HNOI2003]激光炸弹 前缀DP
  7. iOS动画实现总结
  8. .net 邮件批量发送功能源码
  9. [tarjan] hdu 3836 Equivalent Sets
  10. linux环境下搭建环境发布web项目
  11. Linux IP_FORWARD说明
  12. myBatis源码学习之SqlSessionFactoryBuilder
  13. 用汇编语言角度来理解C语言的一些问题
  14. 动手创建 SSD 目标检测框架
  15. 第一节20181109 《Linux就该这么学》
  16. Codeforces Round #514 (Div. 2) D. Nature Reserve
  17. html----属性操作
  18. Cordova笔记(一)
  19. TP3.2整合kindeditor
  20. 20145226夏艺华 《Java程序设计》预备作业3

热门文章

  1. Chrome调试WebView时Inspect出现空白的解决方法(使用离线包不Fan墙)
  2. Docker 推送镜像到hub.docker
  3. day04 一个简单的代码优化案例
  4. java 知识点
  5. HTTPConnectionPool(host='xx.xx.xx.xx', port=xx): Max retries exceeded with url:(Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000015A25025EB8>...))
  6. RabbitMQ详解(三)------RabbitMQ的五种模式
  7. Quick Union
  8. es日常维护
  9. C语言求n的阶乘(n!)
  10. SSM-网站后台管理系统制作(2)---SSM基本工作原理