webpack

webpack插件

2022-03-15  本文已影响0人  白巧克力LIN

在上篇文章中,我们学习了webpack入门,学会了如何安装、配置和使用webpack,在上篇文章中,我们使用webpack时有个小缺陷,就是当js代码发生改变时,webpack打包形成的js文件没有实时发生对应的改变,必须重新启动webpack进行项目的打包构建。

在这篇文章我们来学习webpack的插件,通过webpack的插件来实现对js代码发生改变时,实时改变webpack打包形成的js文件。

webpack插件

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

最常用的webpack插件有:webpack-dev-server和html-webpack-plugin。

这里我们使用上篇文章的change-div项目进行演示,其项目目录如下图所示:

运行index.html文件,如下图所示:

webpack-dev-server

webpack-dev-server插件:

安装

安装方式很简单,执行如下代码即可在项目中安装该插件:

npm install webpack-dev-server@3.11.2 -D

这里我们下载的webpack-dev-server版本为3.11.2,当不加后面的@3.11.2时就会安装最新版本的插件

配置

首先修改package.json文件中scripts的dev命令,如下所示:

    "dev":"webpack serve",          

也就是说把package.json文件中的scripts节点的webpack改为webpack server。

再在webpack.config.js配置文件中module.exports添加如下代码:

    devServer:{
        static:'.',
    }

该代码作用是告诉webpack-dev-server服务器在哪里找项目文件。

启动

通过执行如下命令来启动webpack-dev-server服务:

npm run dev

如下图所示:

执行代码后,webpack-dev-server会启动一个实时打包的http服务器,终端会一直检测代码是否发生改变,当我们的代码发生改变时,就会webpack serve就会自动打包构建,例如当我们把change-div项目中的index.js代码的red改为blue并保存,webpack serve就会自动打包构建,如下图所示:

这样就成功自动打包构建了。

注意:自动生成的打包是生成在内存中,而我们index.html读出的是物理磁盘中的main.js,所以是没效果的。

需要修改index.html对main.js的引用,index.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 物理磁盘引入 -->
    <!-- <script src="../dist/main.js"></script> -->
    <!-- 内存引入 -->
    <script src="/main.js"></script>
</head>
<body>
    <div>这是div标签</div>
</body>
</html>

修改index.js文件后,接下来我们访问http://localhost:8080/,如下图所示:

可以发现,页面的内容就是我们项目目录,点击src文件就会显示index.html页面,如下图所示:

html-webpack-plugin

html-webpack-plugin插件:

简单来说就是访问http://localhost:8080/时,直接展示你想展示的html页面。

安装

执行如下代码即可在项目中安装该插件:

npm install html-webpack-plugin@5.3.2 -D

这里我们下载的html-webpack-plugin版本为5.3.2,当不加后面的@5.3.2时就会安装最新版本的插件。

配置

在webpack-config.js文件加入以下代码:

const HtmlPlugin=require('html-webpack-plugin')     //导入HTML插件,获取构造函数
const htmlPlugin=new HtmlPlugin({
    template:'./src/index.html',    //指定原文件的存放路径
    filename:'./index.html',        //指定生成的文件存放路径
})

添加后,还需要在webpack.config.js文件的module.exports节点添加如下代码:

plugins:[htmlPlugin]

该代码的作用是通过plugins节点,使HTMLPlugin插件生效。

启动

通过执行如下命令来启动webpack-dev-server服务:

npm run dev

启动成功后,我们直接访问http://localhost:8080/就会出现index.html的页面,如下图所示:

注意:

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

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

devServer节点

在webpack.config.js配置文件配置webpack-dev-server时,我们添加了devServer节点,节点里面配置了static:'.',代码,该代码告诉webpack-dev-server服务器在哪里找项目静态文件文件。

通过devServer节点对webpack-dev-server插件进行更多的配置。

除了该配置,我们还可以在devServer节点下添加以下配置:

open:true,          //初次打包完成后,自动打开浏览器
host:'127.0.0.1',   //实时打包所使用的主机地址
port:80,            //实时打包所使用的端口号

注意:只要修改了webpack.config.js配置文件或修改了package.json配置文件,必须重启webpack-dev-server服务器,否则最新的配置文件无法生效。

好了,webpack插件就学到这里了,感谢观看!!!

上一篇下一篇

猜你喜欢

热点阅读