【webpack】webpack 中的插件安装与使用

news2024/11/18 18:17:31

一、webpack 插件的作用

通过安装和配置第三方的插件,可以拓展 webpack 的能力,从而让 webpack 用起来更方便。

最常用的 的webpack 插件有如下两个

1.webpack-dev-server(实时打包构建)

类似于 node.js 阶段用到的 nodemon 工具

每当修改了源代码,webpack 会自动进行项目的打包和构建

2.tml-webpack-plugin

webpack 中的 HTML 插件(类似于一个模板引擎插件)

可以通过此插件自定制 index.html 页面的内容

二、插件的安装

1.webpack-dev-server的安装

webpack-dev-server 可以让 webpack 监听项目源代码的变化,从而进行自动打包构建

(1)运行命令(下载)

# -D: 表示在开发阶段
npm install webpack-dev-server@3.11.0 -D

(2)修改 package.json -> scripts 中的 dev 命令如下

配置参数,加上了才会开启实时打包

"scripts": {
  "dev": "webpack serve" 
},

(3)再次运行 npm run dev 命令,重新进行项目的打包

注意:有可能会出现如下错误

(node:15984) UnhandledPromiseRejectionWarning: TypeError: Class constructor ServeCommand cannot be invoked without 'new'

我们需要更新webpack-cli的版本,使用 npm install webpack-cli 命令即可!

注意:webpack-dev-server 会启动一个实时打包的 http 服务器

也就是说,如果我们想要看这个实时打包的效果,就可以去访问这个HTTP服务器!

地址为:http://localhost:8080

点击src,就可以看到项目的首页

此时如果我们去修改文件(js),再点击ctrl+s保存,确实可以触发实时打包的效果;但是,它并不会生效!这是因为webpack开启实时打包后,生成的文件没有放到物理磁盘上,而是放到了内存

也就是说在我们磁盘dist目录下的index_pack.js“还是”旧的“!!!

打包生成的文件哪儿去了?

假如不配置webpack-dev-server 的情况下,webpack 打包生成的文件,会存放到实际的物理磁盘

  • 严格遵守开发者在webpack.config.js 中指定配置

  • 根据output 节点指定路径进行存放

如果,配置了webpack-dev-server 之后,打包生成的文件存放到了内存中

  • 不再根据output 节点指定的路径,存放到实际的物理磁盘上

  • 提高了实时打包输出的性能,因为内存比物理磁盘速度快很多

生成到内存中的文件该如何访问?

webpack-dev-server 生成到内存中的文件,默认放到了项目的根目录中,而且是虚拟的、不可见的。

  • 可以直接用 / 表示项目根目录,后面跟上要访问的文件名称,即可访问内存中的文件

  • 例如 /bundle.js 就表示要访问webpack-dev-server 生成到内存中的bundle.js 文件

<!-- webpack-dev-server 开启实时打包后,放在内存中,是虚拟的不可以见的-->
<script src="/index_pack.js"></script>

2.tml-webpack-plugin的安装

在上面的案例中,我们访问 http://localhost:8080 并不能直接看到项目首页(index.html),要点击src目录才可以,这样子比较麻烦。

在浏览器中,如果我们访问了一层目录,在这一层目录下面有一个index.html,浏览器就会默认加载这个index.html

所以,如果我们想要访问:localhost:8080 就可以看到“主页面”的话,可以这样做,将 src 目录下的 index.html 首页,复制到项目根目录中一份!

html-webpack-plugin 是webpack 中的HTML 插件,可以通过此插件自定制 index.html 页面的内容。

(1)运行命令(下载)

npm install html-webpack-plugin@4.5.0 -D

(2)配置 html-webpack-plugin

// 1.导入 html-webpack-plugin插件
const HtmlPlugin = require('html-webpack-plugin');

// 2.创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
    template: './src/index.html',
    filename: './index.html'
})

module.exports = {
    ...

    // 3.挂载插件的实例对象
    plugins: [htmlPlugin] 
}

(3)测试

访问:http://localhost:8080

注意事项

通过HTML 插件复制到项目根目录中的index.html 页面,也被放到了内存中

HTML 插件在生成的 index.html 页面的底部,自动注入了打包的bundle.js 文件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么说网络安全是风口行业?

前言 “没有网络安全就没有国家安全”。当前&#xff0c;网络安全已被提升到国家战略的高度&#xff0c;成为影响国家安全、社会稳定至关重要的因素之一。 网络安全行业特点 1、就业薪资非常高&#xff0c;涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万&…

Django框架之模型

模型 当前项目的开发, 都是数据驱动的。 以下为书籍信息管理的数据关系&#xff1a;书籍和人物是 &#xff1a;一对多关系 要先分析出项目中所需要的数据, 然后设计数据库表. 书籍信息表 字段名字段类型字段说明idAutoField主键nameCharField书名 idname1西游记2三国演义…

SpringMVC中遇到的错误

SpringMVC中遇到的错误1.web.xml中配置SpringMVC核心类: DispatcherServlet 报错解决方案&#xff1a;添加Tomcat包2. not declaration can be found for element--------‘mvc:annotation-driven‘通配符的匹配很全面, 但无法找到元素 mvc:annotation-driven 的声明解决方案&a…

雅思经验(9)之小作文常用词汇总结

写作&#xff1a;关于趋势的上升和下降在小作文中&#xff0c;真的是非常常见的&#xff0c;所以还是要积累一下。下面给出了很多词&#xff0c;但是在雅思写作中并不是词越丰富&#xff0c;分数就越高的。雅思写作强调的是准确性&#xff1a;在合适的地方用合适的词和句法。不…

Python+Go实践(电商架构三)

文章目录服务发现集成consul负载均衡负载均衡算法实现配置中心nacos服务发现 我们之前的架构是通过ipport来调用的python的API&#xff0c;这样做的弊端是 如果新加一个服务&#xff0c;就要到某个服务改web&#xff08;go&#xff09;层的调用代码&#xff0c;配置IP/Port并发…

8年软件测试工程师经验感悟

不知不觉在软件测试行业&#xff0c;野蛮生长了8年之久。这一路上拥有了非常多的感受。有迷茫&#xff0c;有踩过坑&#xff0c;有付出有收获&#xff0c; 有坚持&#xff01; 我一直都在软件测试行业奋战&#xff0c; 毕业时一起入职的好友已经公司内部转岗&#xff0c;去选择…

理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?

在面向对象编程中、有一条非常经典的设计原则&#xff0c;那就是&#xff1a;组合优于继承&#xff0c;多用组合少用继承。为什么不推荐使用继承&#xff1f;组合相比继承有哪些优势&#xff1f;如何判断该用组合还是继承&#xff1f;今天,我们就围绕着这三个问题&#xff0c;来…

Windows中安装Docker Desktop 4.16.3(当前最新版本)

前言 docker是一个用Go语言实现的开源项目&#xff0c;它可以很方便的创建和使用容器&#xff0c;docker将程序以及程序所有的依赖都打包到docker container&#xff0c;这样程序可以在任何环境都会有相同的表现&#xff0c;这里程序运行的依赖也就是容器类似集装箱&#xff0…

用于超大图像的训练策略:Patch Gradient Descent

前言 本文旨在计算和内存限制的情况下&#xff0c;解决在大规模图像上训练现有CNN 架构的问题。提出PatchGD&#xff0c;它基于这样的假设&#xff1a;与其一次对整个图像执行基于梯度的更新&#xff0c;不如一次只对图像的一小部分执行模型更新&#xff0c;确保其中的大部分是…

scscanner:一款功能强大的大规模状态码扫描工具

关于scscanner scscanner是一款功能强大的大规模状态码扫描工具&#xff0c;该工具可以帮助广大研究人员从一个URL列表文件中批量读取目标网站的状态码响应信息。除此之外&#xff0c;该工具还可以过滤出指定的状态码&#xff0c;并将结果存储到一个文件中以供后续深入分析使用…

Idea软件——Debug使用方法

Idea软件——Debug 1 Debug概述 Debug:是供程序员使用的程序测试工具&#xff0c;它可以用于查看程序和执行流程&#xff0c;也可以用于追踪程序执行过程来调试程序 1.2 Debug操作流程 Debug调试&#xff1a;又叫断点调试&#xff0c;断点其实是一个标记&#xff0c;告诉从何看…

实战项目-用户评论数据情绪分析

目录1、基于词典的方法2、基于词袋或 Word2Vec 的方法2.1 词袋模型2.2 Word2Vec3、案例&#xff1a;用户评论情绪分析3.1 数据读取3.2 语料库分词处理3.3 Word2Vec 处理3.4 训练情绪分类模型3.5 对评论数据进行情绪判断目的&#xff1a;去判断一段文本、评论的情绪偏向在这里&a…

九龙证券|一夜暴跌36%,美股走势分化,标普指数创近2月最差周度表现

当地时间2月10日&#xff0c;美股三大指数收盘涨跌纷歧。道指涨0.5%&#xff0c;标普500指数涨0.22%&#xff0c;纳指跌0.61%。 受国际油价明显上升影响&#xff0c;动力板块领涨&#xff0c;埃克森美孚、康菲石油涨超4%。大型科技股走低&#xff0c;特斯拉、英伟达跌约5%。热门…

[ 系统安全篇 ] window 命令禁用用户及解禁方法

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

MC0108白给-MC0109新河妇荡杯

MC0108白给 小码哥和小码妹在玩一个游戏&#xff0c;初始小码哥拥有 x的金钱&#xff0c;小码妹拥有 y的金钱。 虽然他们不在同一个队伍中&#xff0c;但他们仍然可以通过游戏的货币系统进行交易&#xff0c;通过互相帮助以达到共赢的目的。具体来说&#xff0c;在每一回合&a…

3.JUC【Java面试第三季】

3.JUC【Java面试第三季】前言推荐3.JUC06_闲聊AQS面试1.题目说明07_可重入锁理论2.可重入锁说明“可重入锁”这四个字分开来解释可重入锁的种类08_可重入锁的代码验证-上09_可重入锁的代码验证-下3.LockSupport10_LockSupport是什么LockSupport是什么11_waitNotify限制线程等待…

(C语言)程序环境和预处理

问&#xff1a;1. 什么是C语言的源代码&#xff1f;2. 由于计算机只认识什么&#xff1f;因此它只能接收与执行什么&#xff1f;也就是什么&#xff1f;3. 在ANSI C的任何一种实现中&#xff0c;存在哪两个不同的环境&#xff1f;在这两种环境里面分别干什么事情&#xff1f;4.…

一款非常不错的微信系统垃圾清理工具:微信清理大师,操作简单,清除较快。

微信清理大师 微信清理大师是一款专为微信所推出的系统垃圾清理工具。它的功能十分强大&#xff0c;可快捷清理微信内储存垃圾文件&#xff0c;操作十分简单&#xff0c;只需要轻轻一点&#xff0c;即可删除清理。 功能特点&#xff1a; 【一键清理】一键搞定无用垃圾&#x…

【计算机网络】Linux环境中的TCP网络编程

文章目录前言一、TCP Socket API1. socket2. bind3. listen4. accept5. connect二、封装TCPSocket三、服务端的实现1. 封装TCP通用服务器2. 封装任务对象3. 实现转换功能的服务器四、客户端的实现1. 封装TCP通用客户端2. 实现转换功能的客户端五、结果演示六、多进程版服务器七…

Kubernetes + Docker 部署一个yolov5检测服务(基于FastDeploy)

Kubernetes Docker 从零部署一个yolov5检测服务&#xff0c;服务基于PaddlePaddle/FastDeploy的服务化部署&#xff1b;所有软件从零安装。 文章目录1.说明2.环境3.安装过程 3.1安装 Docker 3.2安装 minikube 3.3安装 Kubectl4.部署过程 4.1 Docker相关 4.2 k8s相关 4.3 启动服…