webpack中的插件

147 阅读2分钟

webpack中的插件

一、webpack插件的作用

通过安装和配置第三方插件,可以扩展webpack的能力,从而让webpack用起来更方便,最常用的weback插件有以下两个:

  • webpack-dev-server

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

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

  • html-webpack-plugin

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

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

二、webpack-dev-server

1.运行下面的命令,可以在项目中安装此插件:
npm install webpack-dev-server@3.11.0 -D
2.配置 webpack-dev-server

修改package.json -> scripts 中的dev命令

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

再运行npm run dev 命令,重新进行项目的打包,之后更改源代码后进行保存,项目会自动打包

浏览器访问:http://localhost:8080,实时打包效果

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

3.打包生产的文件去哪里了?

1.不配置webpack-dev-server的情况下,webpack打包生产的文件,会存放到实际的物理磁盘上

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

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

2.配置webpack-dev-server的情况下,自动打包生产的文件放在了内存中

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

提高了是啥打包的输出的性能,因为内存比物理磁盘速度要更快

4.生产到内存中的文件该如何访问?

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

<script src="/main.js"></script>  //  '/' 表示根目录
5.devServer节点

在webpack.config.js配置文件中,可以通过DevServer节点对webpack-dev-server插件进行更多配置

示例代码如下:

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

三、html-webpack-pulgin

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

需求:通过html-webpack-pulgin 插件,将src目录下的index.html首页,复制到项目根目录一份

1.安装html-webpack-pulgin
npm install html-webpack-plugin -D
2.配置html-webpack-pulgin

在webpack.config.js 配置:

// 1.导入HTML插件,得到一个构造函数
const HtmlPlugin = require('html-webpack-plugin')
// 2.创建HTML插件的实例对象
const htmlPlugin = new HtmlPlugin({
    template : './src/index.html', // 指定原文件的存放路径
    filename : './index.html', // 指定生成文件的存放路径
})
// 向外导出一个配置对象
module.exports = {
    mode: 'development', // mode 用来指定构建模式,可选值有 development和 production
    // 3. 通过 plugins节点, 使htmlPlugin 插件生效
    plugins: [htmlPlugin]
}
3.解惑html-webpack-pulgin
  • 通过HTML插件复制到项目根目录的index.html页面,也被放到了内存中
  • HTML插件在生成的index.html页面的底部,自动注入了打包的main.js文件