1、概念
1.前端模块化打包机:打包+依赖关系
2.把错综复杂依赖关系和文件(jsx,.vue.sass)生成浏览器能识别的:html+css+js+图片
2、安装初始化
md mydiv
cd mydiv
npm init -y
npm i webpack webpack-cli -D
3、核心
webpack依赖webpack.config.js打包
入口:entry
输出:output
模式:mode //development 开发模式 production 产品模式
加载器:loader 处理非js文件
css css-loader 处理css文件
style-loader 把css文件加载到sytle标签
图片/文件 file-loader 处理文件
url-loader 处理文件并把小图片转为base64格式插件:plugins 压缩,打包,清理等功能
html-webpack-plugin html模板
webpack-dev-server 本地服务器解决:resolve 别名:alias
{“@”:path.resolve(__dirname,'./src')}
- module.exports = {
- entry: './src/index.js', //入口
- output: { //出口
- filename: "main.js", //文件名
- path: __dirname + "/dist" //文件夹
- },
- mode: 'development', //产品模式 production 开发模式
- module: {
- rules: [
- // loader css-loader让webpack拥有处理css的能力
- // 遇到.css结尾的文件都使用这两个loader处理
- {
- test: /\.css/,
- use: ["style-loader", "css-loader"]
- },
- {
- test: /\.(png|jpeg|jpg|gif|svg|webp|ico)/,
-
- use: [{
- loader: "url-loader",
- options: {
- limit: 50000, //当文件小于 5000 字节 转换为 base64格式(减少http请求次数)
- name: 'images/[name].[ext]' // [name]名称 [ext]后缀名
- },
- }]
- }
- ]},
- plugins: [
- // 把template文件拷贝到dist目录并插入打包还要的js(main.js)
- new HtmlWebpackPlugin({
- template: './public/index.html'
- })
- ],
- devServer: {
- proxy: {}, //代理
- host: "localhost", //域名
- port: 8080, //端口号
- hot: true, //热更新
- open: true, //自动打开浏览器
- }
- }