当前位置: 首页 > news >正文

02.webpack中多文件打包

1.module,chunk,bundle的区别

  • moudle - 各个源码文件,webpack中一切皆是模块
  • chunk - 多模块合并成的,如entry, import(), splitChunk
  • bundle - 最终的输出文件

2.多文件打包配置

2.1 webpack.common.js

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { srcPath, distPath } = require('./paths')module.exports = {entry: {index: path.join(srcPath, 'index.js'),other: path.join(srcPath, 'other.js')},module: {rules: [// ----- 同上文 ----]},plugins: [// 多入口 - 生成 index.htmlnew HtmlWebpackPlugin({template: path.join(srcPath, 'index.html'),filename: 'index.html',// chunks 表示该页面要引用哪些 chunk (即上面的 index 和 other),默认全部引用// chunks: ['index']  // 只引用 index.js}),// 多入口 - 生成 other.htmlnew HtmlWebpackPlugin({template: path.join(srcPath, 'other.html'),filename: 'other.html',// chunks: ['other']  // 只引用 other.js})]
}
  • 上面的chunks配置,如果不配置chunks,那么打包出来的结果是默认引入全部js
<body><p>webpack demo</p><input type="text"/><script type="text/javascript" src="index.js"></script><script type="text/javascript" src="other.js"></script>
</body>
  • 如果配置了chunks,那么就只引入对应的结果
<body><p>webpack demo</p><input type="text"/><script type="text/javascript" src="index.js"></script>
</body>
2.2 webpack.prod.js
const path = require('path')
const webpack = require('webpack')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const webpackCommonConf = require('./webpack.common.js')
const { smart } = require('webpack-merge')
const { srcPath, distPath } = require('./paths')module.exports = smart(webpackCommonConf, {mode: 'production',output: {// filename: 'bundle.[contentHash:8].js',  // 打包代码时,加上 hash 戳filename: '[name].[contentHash:8].js', // name 即多入口时 entry 的 keypath: distPath,// publicPath: 'http://cdn.abc.com'  // 修改所有静态文件 url 的前缀(如 cdn 域名),这里暂时用不到},module: {rules: [//代码重复]},plugins: [new CleanWebpackPlugin(), // 会默认清空 output.path 文件夹new webpack.DefinePlugin({// window.ENV = 'production'ENV: JSON.stringify('production')})]
})
  • 多入口时,output出口的【name】变量会对应到入口的变量名

相关文章:

  • Spring Boot简介
  • 电子学会2023年6月青少年软件编程(图形化)等级考试试卷(三级)真题,含答案解析
  • 广西柳州机械异形零部件三维扫描3D抄数全尺寸测绘建模-CASAIM中科广电
  • mongodb——概念介绍(文档,集合,固定集合,元数据,常用数据类型)
  • C/C++---------------LeetCode第1207.独一无二的出现次数
  • 使用Dockerfile构建hexo博客镜像,并部署
  • Qt QWebSocket实现JS调用C++
  • 广西南宁新能源汽车电机定子三维扫描3D尺寸测量检测-CASAIM中科广电
  • 数据仓库相关
  • 远勤山丨品质第一 服务先行 扎扎实实打造让消费者满意的产品
  • 汇编层面有三个主要的操作对象
  • git 提交成了LFS格式,如何恢复
  • Python UI自动化 —— 关键字+excel表格数据驱动
  • Spring Boot中使用Redis进行大数据缓存
  • 应用程序生成器:App Builder 2023
  • 分享的文章《人生如棋》
  • 收藏网友的 源程序下载网
  • 07.Android之多媒体问题
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • input实现文字超出省略号功能
  • PHP 7 修改了什么呢 -- 2
  • Spring Cloud中负载均衡器概览
  • vue的全局变量和全局拦截请求器
  • Vue官网教程学习过程中值得记录的一些事情
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 翻译--Thinking in React
  • 飞驰在Mesos的涡轮引擎上
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 利用DataURL技术在网页上显示图片
  • 异步
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 第二十章:异步和文件I/O.(二十三)
  • #HarmonyOS:基础语法
  • #include<初见C语言之指针(5)>
  • (1)(1.9) MSP (version 4.2)
  • (33)STM32——485实验笔记
  • (9)目标检测_SSD的原理
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)换源+apt-get基础配置+搜狗拼音
  • (规划)24届春招和25届暑假实习路线准备规划
  • (七)Java对象在Hibernate持久化层的状态
  • (一)kafka实战——kafka源码编译启动
  • (正则)提取页面里的img标签
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)http-server应用
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Core跨平台微服务学习资源
  • .NET/C# 的字符串暂存池
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET性能优化(文摘)
  • [30期] 我的学习方法
  • [ajaxupload] - 上传文件同时附件参数值
  • [BUUCTF 2018]Online Tool
  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测