webpack学习-3.管理输出

webpack学习-3.管理输出

  • 1.简单练手
  • 2.设置 HtmlWebpackPlugin
  • 3.清理 /dist 文件夹
  • 4.manifest
  • 5.总结

1.简单练手

官网的第一个预先准备,是多入口的。

const path = require('path');

 module.exports = {
  entry: {
    index: './src/index.js',
    print: './src/print.js',
  },
   output: {
    filename: '[name].bundle.js',
     path: path.resolve(__dirname, 'dist'),
   },
 };

主要是output的filename变成了动态的。官网中刚开始有段话是没理解到的。

如果更改入口起点的名称,或者添加一个新的入口起点,那么会在构建时重新命名生成的 bundle,而 index.html 仍然在引用旧的名称。

后面是弄明白了的,例如我把webpack的入口 index: './src/index.js’改为 demo: './src/demo.js’的话,构建的话会多出来个
demo.bundle.js。但是主文件index.html里面的原来引入的index.bundle.js还是index.bundle.js,除非之前是已经构建出了index.bundle.js(未清理dist的情况下),不然index.html是达不到预期效果的。
正常的:
在这里插入图片描述

未更新的:
在这里插入图片描述

2.设置 HtmlWebpackPlugin

上面的问题通常可以通过使用 HtmlWebpackPlugin 插件来自动解决。HtmlWebpackPlugin 可以在构建过程中自动更新 index.html 文件中的引用路径,以匹配生成的输出文件名。你只需要正确配置 HtmlWebpackPlugin 插件,它会根据实际的输出文件进行更新。
安装插件:

npm install --save-dev html-webpack-plugin

  plugins: [
    new HtmlWebpackPlugin({
      title: '管理输出',
    }),
  ],

简单配置就能实时更新了,这次将 demo: './src/demo.js’改成 demo: ‘./src/index.js’,一样的正常效果了的。

3.清理 /dist 文件夹

可能已经注意到,由于遗留了之前的指南的代码示例,/dist 文件夹已经变得相当杂乱。webpack 生成文件并将其默认放置在 /dist 文件夹中,但是它不会追踪哪些文件是实际在项目中需要的。
在这里插入图片描述

通常比较推荐的做法是在每次构建前清理 /dist 文件夹,那么构建后就只会存在将要用到的文件。可以使用 output.clean 配置选项实现这个需求。
webpack配置文件:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: {
    //index: './src/index.js',
    demo: './src/index.js',
    print: './src/print.js',
  },
  plugins: [
    new HtmlWebpackPlugin({
      title: '管理输出',
    }),
  ],
  output: {
    filename: '[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    clean: true,
  },
};

效果:
在这里插入图片描述

4.manifest

这个就有点抽象了

Manifest文件的作用主要有两个方面:
1.在构建过程中,Webpack使用Manifest来跟踪每个模块的依赖关系和输出文件的命名。当一个模块被修改或者添加时,Webpack会通过对比Manifest文件,确定哪些模块发生了变化,并重新构建这些模块及其依赖的部分。这样可以提高构建的效率,避免不必要的重复构建。
2.在项目部署阶段,Manifest文件对于浏览器端的资源加载非常重要。当浏览器请求页面时,服务器会将生成的Manifest文件一起返回给浏览器。浏览器通过解析Manifest文件,可以知道每个模块对应的输出文件的路径和名称。这样,浏览器就可以准确地加载所需的资源文件,正确地执行应用程序。

多的之后再深入吧。

5.总结

webpack的output输出,HtmlWebpackPlugin,output的clean和manifest的概念

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/224822.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM框架家电商城系统分前后台【项目源码+数据库脚本+报告】

一、项目简介 本项目是一套基于SSM框架家电商城系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,确保可以运行…

Mysql 日期函数大全

一、时间函数 (一)、获取当前时间 1、NOW() 获取当前日期和时间,在程序一开始执行便拿到时间 返回格式 YYYY-MM-DD hh:mm:ss eg: NOW() 得到 2023-12-03 12:20:02 NOW(),SLEEP(2),NOW() 得到 2023-12-03 12:20:02 | 0 | 2023-…

HeyGen推出Avatar2.0:AI视频翻译工具引领虚拟分身创作新时代

在数字创意领域迈向新的里程碑,HeyGen公司正式推出了Avatar2.0,这是一款令人惊叹的AI视频翻译工具,仅需短短5分钟,用户即可在手机上打造一个逼真的虚拟分身。HeyGen的这一最新创新标志着他们在多模态内容生成领域的持续引领地位&a…

对象数组根据布尔值true和false进行排序——js基础积累

对象数组根据布尔值true和false进行排序——js基础积累 应用场景:效果图如下:根据布尔值进行排序总结:1.true的放前面——算降序排列2.true的放后面——算升序排列 应用场景: 最近在写后台管理系统的时候,遇到一个需求…

MySQL:update set的坑

目录 一、问题描述 二、为何会出现这样的问题? 三、正确的方案 一、问题描述 我在修改mysql数据表时,看到下面的现象。 我表中原始数据如下: 执行了下面的修改,显示执行成功。 update user_function_record_entity set open_…

Android的启动模式

Android的四种启动模式:standard、singleTop、singleTask和singleInstance。 1.standard Android默认的启动模式是standard,每启动一个Activity,它都会在返回栈中入栈,并处于栈顶,不管这个返回栈是否存在这个activit…

Linux--环境变量

一.基本概念 * 环境变量 (environment variables) 一般是指在操作系统中用来指定操作系统运行环境的一些参数 * 如:我们在编写 C/C 代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功&am…

易基因:人早期胚胎发育的表观遗传调控(染色质重塑+组蛋白修饰+DNA甲基化)|深度综述

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 哺乳动物发育研究促进了对协调胚胎发生遗传、表观遗传和细胞过程的理解,并揭示了对人类胚胎发生特异性新见解。最近研究生成了人类早期胚胎发生的第一个表观遗传学图谱&#…

第二十一章总结

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封装成不同的类,用户只要创建这些类的对象,使用相应的方法,即使不具备有关的网络支持,也可以编写出高质量的网络通信程序。 …

Edge调用Aria2下载

一、准备工作 1、Edge浏览器:Windows系统自带或点击下载;   2、Aria2 gui:点击github下载或自行搜索下载其他版本; 二、启动Aria2 gui 解压下载的Aria2 gui到任意目录,点击“Aria2c启动器”或“AriaNg启动器”皆可。…

SLAM算法与工程实践——SLAM基本库的安装与使用(2):OpenCV库

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接,本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址: SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

记1次nacos拉取不到配置问题

今天部署1套新的环境,nacos由运维部署完成,提供了3个端口 30820 31558 32239 启动的时候提示 [Nacos Config] config[dataIdredis.yml, groupDEFAULT_GROUP] is empty 我再三确认页面上确实已经配置好了 于是开启debug -401 Client not connected, c…

Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

环境准备Jenkins工具、环境、插件配置全局变量配置安装插件Deploy to containerMaven Integration plugin配置国内mvn源 创建maven项目 环境准备 1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage Jenkins>tools>JDK 安装 安装插件 Deploy to contai…

居民最低生活保障人数数据,2020-2022年数据,shp矢量及表格数据均有!

居民最低生活保障,是国家对共同生活的家庭成员人均收入低于当地最低生活保障标准,且符合当地最低生活保障家庭财产状况规定的家庭,给予最低生活保障。 基本信息. 数据名称: 居民最低生活保障人数数据 数据格式: shpexcel 数据几何类型: 面…

【Linux】stat命令使用

stat命令 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 著者 由Michael Meskes撰写。 stat命令 -Linux手册页 语法 stat [文件或目录] 命令选项及作用 执行令 : stat --help 执行命令结果 参数 -L、 --dereference 跟…

<JavaEE> 经典设计模式之 -- 使用阻塞队列实现“生产者-消费者模型”

目录 一、阻塞队列和“生产者-消费者模型”之间的关系 二、标准库提供了阻塞队列 三、实现自己的阻塞队列 3.1 基于数组实现普通的环形队列 3.2 将上述代码改造为线程安全 3.3 增加阻塞功能 四、使用阻塞队列实现“生产者-消费者模型” 一、阻塞队列和“生产者-消费者模…

react新旧生命周期钩子

以下的内容根据尚硅谷整理。 旧生命钩子 辅助理解: 红色框:挂载时生命钩子蓝色框:更新时生命钩子绿色框:卸载时生命钩子 挂载时 如图所示,我们可以看到,在组件第一次挂载时会经历: 构造器&a…

数据库原理: 笛卡儿积

笛卡儿积(Cartesian Product)是集合论中的一个概念,也在数据库中的查询操作中经常使用。笛卡儿积是指两个集合(或更多集合)之间所有可能的组合。如果有两个集合A和B,它们的笛卡儿积记作A B,表示…

深入理解HashMap:Java中的键值对存储利器

HashMap是Java中常用的数据结构之一,它提供了一种键值对的存储机制,适用于快速查找和检索。本文将深入探讨HashMap的概念、内部结构、工作原理以及在多线程环境下的一些问题。 1. HashMap的概念 HashMap是Java中的一种数据结构,用于存储键值…

RPC简介和grpc的使用

文章目录 Rpc基本概念RPC 机制和实现过程RPC的机制的诞生和基础概念总结下RPC执行步骤: 安装gRPC和Protobuf安装proto 服务定义gRPC 优势 gRPC入门简单使用 代码仓库 Rpc基本概念 RPC(Remote Procedure Call)远程过程调用,是一种…