webpack常用插件配置记录
2024-09-10 03:14:28
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 } } ]
},
],
最新文章
- 【JS基础】算法
- 剖析twemproxy前言
- 20个命令行工具监控Linux系统性能
- Beta项目冲刺汇总贴
- 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面
- BZOJ 1218: [HNOI2003]激光炸弹 前缀DP
- iOS动画实现总结
- .net 邮件批量发送功能源码
- [tarjan] hdu 3836 Equivalent Sets
- linux环境下搭建环境发布web项目
- Linux IP_FORWARD说明
- myBatis源码学习之SqlSessionFactoryBuilder
- 用汇编语言角度来理解C语言的一些问题
- 动手创建 SSD 目标检测框架
- 第一节20181109 《Linux就该这么学》
- Codeforces Round #514 (Div. 2) D. Nature Reserve
- html----属性操作
- Cordova笔记(一)
- TP3.2整合kindeditor
- 20145226夏艺华 《Java程序设计》预备作业3
热门文章
- Chrome调试WebView时Inspect出现空白的解决方法(使用离线包不Fan墙)
- Docker 推送镜像到hub.docker
- day04 一个简单的代码优化案例
- java 知识点
- HTTPConnectionPool(host=&#39;xx.xx.xx.xx&#39;, port=xx): Max retries exceeded with url:(Caused by ConnectTimeoutError(<;urllib3.connection.HTTPConnection object at 0x0000015A25025EB8>;...))
- RabbitMQ详解(三)------RabbitMQ的五种模式
- Quick Union
- es日常维护
- C语言求n的阶乘(n!)
- SSM-网站后台管理系统制作(2)---SSM基本工作原理