Webpack4.x的四个核心概念介绍

yizhihongxing

Webpack4.x 是一款常用的 JavaScript 模块打包工具,为我们提供了便捷的前端开发解决方案,这里我们将重点介绍 Webpack4.x 的四个核心概念。

一、Entry(入口)

Entry 是 Webpack4.x 打包时的入口文件,它指定了用哪个文件作为 Webpack 打包的起点。当 Webpack 从 Entry 开始打包时,会递归地解析出该入口文件所依赖的所有模块,然后将它们打包成一个或多个单独文件。Entry 通常可以是一个或多个 JavaScript 文件,也可以是一个模板或者一个 CSS 样式表,例如:

module.exports = {
  entry: {
    main: './src/index.js',
    vendor: ['react', 'react-dom', 'lodash']
  }
};

在上面的代码中,我们设置了两个入口文件,一个是 main.js,另一个是 vendor.js,分别指定了程序的逻辑部分和所依赖的第三方库。

二、Output(输出)

Output 是 Webpack4.x 打包后文件的输出配置,它定义了打包后所有文件的输出目录、文件名和资源路径等信息。Output 可以使用占位符来动态地确定文件名和路径,例如:

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

在上面的配置中,我们设置了打包后的文件输出目录为 dist,文件名为 bundle.4fa0c1b9127f1c0f49dd.js,并且指定了公共路径为 /。

三、Loader(加载器)

Webapck4.x 默认只能打包 JavaScript 模块,而其它类型的文件(比如 CSS, 图片,字体等)需要用到 Loader 进行处理和转换。Loader 用来将一些非 JavaScript 模块转化为 Webpack 可以处理的模块,它们本身是一个函数或一段脚本,用于对模块的源代码进行转换,例如:

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'images/'
            }
          }
        ]
      }
    ]
  }
};

上述代码配置了两个 Loader,一个是处理 CSS 样式表的 Loader,一个是处理图片的 Loader。对于 CSS 样式表文件,我们将使用 style-loader 和 css-loader 将其转换为 JavaScript 模块,以便能够被 Webpack 处理。对于图片文件,我们将使用 file-loader 将其转换为 Webpack 需要的格式,并指定了图片输出的路径和文件名。

四、Plugin(插件)

Plugin 是 Webpack4.x 另一个重要的概念,它可以在 Webpack 打包的不同阶段执行一些特定的任务,例如压缩代码,拷贝文件,生成 HTML 等。Plugin 通常要在 Webpack 配置文件中引入,并作为一个数组传递给 plugins 配置项。例如:

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

module.exports = {
  plugins: [
    new HtmlWebpackPlugin({
      title: 'My App',
      template: './src/index.html'
    })
  ]
};

在上面的代码中,我们引入了 HTMLWebpackPlugin 插件,并在 plugins 数组中实例化了该插件。该插件的作用是生成 HTML 文件,用来展示 Webpack 编译后的程序。

以上就是 Webpack4.x 的四个核心概念,它们相互配合,构成了 Webpack 发挥强大功能的核心。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Webpack4.x的四个核心概念介绍 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • Windows环境下npm install 报错: operation not permitted, rename的解决方法

    当我们在Windows环境下使用npm进行包的安装时,有时候可能会遇到”operation not permitted, rename”的问题,这是因为Windows系统有时候会给文件锁定,从而导致文件重命名失败。下面我将为大家提供两种解决方法。 方法一:使用管理员权限打开命令行 打开命令行时,需要使用管理员权限。在Windows系统下有两种方法打开命令行。…

    node js 2023年6月8日
    00
  • Nodejs进程管理模块forever详解

    Nodejs进程管理模块forever详解 什么是forever forever是一个用于管理Nodejs进程的模块。它可以让你在服务器上运行Nodejs程序,保证进程不会在错误或者异常退出的情况下停止运行。 安装forever 我们可以使用npm来安装forever: npm install forever -g 使用forever 启动进程 可以通过以下…

    node js 2023年6月8日
    00
  • JS前端开发模拟虚拟dom转真实dom详解

    下面是“JS前端开发模拟虚拟DOM转真实DOM详解”的完整攻略。 什么是虚拟DOM 虚拟DOM(Virtual DOM)是由React.js提出的一种机制,通过在JS对象中模拟DOM节点的状态信息,实现了高效的DOM操作,从而优化了前端的性能。虚拟DOM一般都是采用JavaScript对象来描述一棵树形结构,每个节点表示一个组件或元素,其中包含了当前节点所需…

    node js 2023年6月8日
    00
  • nodeJs内存泄漏问题详解

    节点JS内存泄漏问题详解 什么是内存泄漏? 内存泄漏指的是内存中已经被分配的空间,因为某些原因不能被回收或者释放,导致系统中的可用内存越来越少,最终进程可能会耗尽所有可用的内存而崩溃。 节点JS中的内存泄漏 在节点JS中,内存泄漏通常是由于以下几个原因所致: 全局变量:全局变量不再使用时,仍然在内存中存在,可以使用delete操作符进行删除。 计时器:在创建…

    node js 2023年6月8日
    00
  • Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)

    OK,这里是 “Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)”的完整攻略: 攻略概览 本攻略主要介绍如何使用 Express 实现前后端之间的图片上传,以及如何将上传的图片存储到 MySQL 数据库中。攻略包含以下主要内容: 前端页面的开发,包括上传图片的界面和相应的 JS 代码; Express 后端的开发,包括上传图片…

    node js 2023年6月8日
    00
  • JavaScript版的TwoQueues缓存模型

    让我来详细讲解一下JavaScript版的TwoQueues缓存模型,包含示例说明。 什么是TwoQueues缓存模型 TwoQueues缓存模型是一种常见的缓存淘汰策略。在TwoQueues缓存模型中,有两个队列,一个是使用队列(hot queue),一个是空闲队列(cold queue)。 当一个缓存项被访问时,它会从cold queue中被移到hot …

    node js 2023年6月8日
    00
  • 使用TS来编写express服务器的方法步骤

    使用TS来编写Express服务器的步骤如下: 安装必要的工具和依赖项 首先,需要确保本地安装了Node.js和TypeScript。如果没有安装,可以前往官网下载并按照步骤进行安装。然后,需要安装Express和相关的TypeScript库。运行以下命令: npm install express @types/express ts-node typescr…

    node js 2023年6月8日
    00
  • 代码规范需要防微杜渐code review6个小错误纠正

    下面我将详细讲解“代码规范需要防微杜渐code review6个小错误纠正”的完整攻略。 1. 概述 代码规范是指开发者在编码时需要遵循的一些约定,如变量命名、代码格式、注释规范等。良好的代码规范可以提高代码的可读性、可维护性和可扩展性。而code review(代码审核)则是指对开发人员提交的代码进行仔细的检查和审查,以便发现和纠正代码中的问题和错误。 在…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部