Webpack学习

2023-11-01

webpack是一种打包工具

----安装

npm install webpack webpack-cli webpack-dev-server -D

----webpack配置文件

可命名 webpack.config.js 单个总的配置文件

也可以拆分成3个配置文件,另建文件夹config,新建3个配置文件:webpack.common.js、webpack.dev.js、webpack.prod.js

其中,webpack.common.js配置文件中存放一些开发环境和生产环境公用的配置;webpack.dev.js配置文件中存放开发环境需要用到的一些私有配置;webpack.prod.js则存放生产环境需要用的一些私有配置

----entry 入口

程序执行的入口文件,可以通过webpack配置文件中的entry属性来配置指定一个或多个入口起点

例如:

上图中,main和util是两个入口起点

----output 输出

output设置webpack打包后的文件输出文件名以及输出路径

filename属性设置entry配置的入口输出文件名称,如果含有多个入口文件,则如上图中,[name]对应entry中配置的多个入口的文件名

path属性设置输出路径

例如上图中的配置,在webpack打包后,会在dist文件夹中生成 main.build.js 和 util.build.js 两个入口文件

----loader 加载器

loader加载器,让webpack可以解析并打包除了js文件以外的其他文件(例如.css/.styl等),loader可以将所有类型的文件转换为webpack能够处理的有效模块

loader能够import导入任何类型的模块

loader配置在module的rules中,具有2个属性,test属性和use属性

test属性,用于标识出应该被对应loader进行转换的某个或某些文件

use属性,表示进行转换时,应该使用哪个loader,可以按顺序配置多个loader 

----plugins 插件

插件用于执行范围更广的任务,包括打包优化和压缩、重新定义环境中的变量等等

使用插件,需要require()引入,然后将其追加到plugins数组中

html-webpack-plugin 插件 用来自定生成html文件

clean-webpack-plugin 插件 用来清理dist目录中的文件

uglifyjs-webpack-plugin 插件 用来压缩代码

webpack-bundle-analyzer 插件 用来查看打包模块依赖关系以及size

html-webpack-externals-plugin 插件 用来配置另外打包的第三方模块(不打包在vendors中) 便于自动生成script (其中,externals是一组供应商模块,第三方模块;externals[].module 模块名称;externals[].entry 模块路径;externals[].global 供应商的 dist 文件全局导出的对象的名称)

----mode 模式

可选择 development 或 production 中的一个来设置,设置后,可以一穷相应模式下的webpack内置的优化

----devtool属性 和 webpack-dev-server工具

将devtool属性设置为 source-map 后生成源码的映射文件,方便进行debug调试

webpack-dev-server工具用于监听和热更新

npm install webpack-dev-server -D

具体配置见上图中 devServer

----node 配置文件中 配置3个快捷命令

----分模块打包

externals 排除 指定某些模块不打包

optimization 提取多入口模块中的第三方库 单独整合打包 命名为vendors

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webpack学习 的相关文章

随机推荐

  • clickhouse-server.service: main process exited, code=exited, status=232/ADDRESS_FA

    使用 systemctl start clickhouse server 启动失败 报错信息如下 root hantest mysql systemctl status clickhouse server clickhouse server
  • 密码学-传统加密技术

    传统加密技术 对称密码模型 明文 plaintext 加密算法 encryption 密钥 key 密文 cipher 解密算法 decryption 传统密码的要求 加密算法足够强 密钥安全 采用对称密码 首要的安全问题是密钥的保密性 密
  • web前端 --- 常见页面标签和语义化标签

    1 HTML5 1 含义 HTML Hypertext Markup Language 超文本标记语言 是一种用于创建网页的标准标记语言 您可以使用 HTML 来建立自己的 WEB 站点 HTML 运行在浏览器上 由浏览器来解析 声明为 H
  • Modbus 与 RS485 的区别与联系

    目前道长入坑了一家智能家居公司 以后会分享记录一些智能家居相关的知识 如果有问题 希望小伙伴交流指正 一 RS 485 1 1 RS 485 来源 RS485是美国电子工业协会 EIA 在1983年批准了一个新的平衡传输标准 balance
  • java线程状态

    1 新建 NEW 新创建了一个线程对象 2 可运行 RUNNABLE 调用了对象的start 方法 位于可运行线程池中 等待被线程调度选中 获取cpu 的使用权 3 运行 RUNNING 可运行状态 runnable 的线程获得了cpu 时
  • Django-全局配置文件&路由配置文件(二)

    一 全局配置文件 settings py 注意文件中注释 Django settings for mysite project Generated by django admin startproject using Django 2 2
  • 大数据Flink简介与架构剖析并搭建基础运行环境

    文章目录 前言 Flink 简介 Flink 集群剖析 Flink应用场景 Flink基础运行环境搭建 Docker安装 docker compose文件编写 创建并运行容器 访问Flink web界面 前言 前面我们分别介绍了大数据计算框
  • spring

    1 Spring简介 1 1 Spring概述 官网地址 https spring io Spring 是最受欢迎的企业级 Java 应用程序开发框架 数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好 易于测试 可重用的
  • 【算法】队列——解密QQ号

    新学期开始了 小哈是小哼的新同桌 小哈是个小美女哦 小哼向小哈询问QQ号 小哈当然不会直接告诉小哼啦 原因嘛你懂的 所以小哈给了小哼一串加密过的数字 同时小哈也告诉了小哼解密规则 规则是这样的 首先将第1个数删除 紧接着将第2个数放到这串数
  • CentOS7添加永久路由之一

    一 默认在系统中添加的路由会随着网络重新启动丢失 root vm al bj2 web01 route n Kernel IP routing table Destination Gateway Genmask Flags Metric R
  • Vue 渲染流程详解

    在 Vue 里渲染一块内容 会有以下步骤及流程 第一步 解析语法 生成AST 第二步 根据AST结果 完成data数据初始化 第三步 根据AST结果和DATA数据绑定情况 生成虚拟DOM 第四步 将虚拟DOM 生成真正的DOM插入到页面中
  • python针对Excel文件处理

    一 Excel文件处理介绍 需要用到第三方库 openpyxl 最常用 xlrd xlwt pandas 安装第三方库 pip install openpyxl 二 openpyxl模块 openpyxl模块的三大重要组件 1 工作簿 包含
  • 前置声明(Forward declaration)

    前置声明是指声明一个类或结构体而不定义它 比如 class A struct B 在声明之后 定义之前 该类或结构体被称为不完全类型 incompletion type 意思是 知道类型A和B 但不知道他包含哪些内容 不完全类型的使用有一些
  • pip指定路径安装文件

    pip指定路径安装文件 由于某些原因 我们使用pip命令安装一些模块时 速度慢的离谱 所以我们有时会用其他方式在网上下载资源包 以zh core web lg 2 3 1 tar gz为例 再通过pip安装 格式 pip install t
  • loadrunner+fiddler代理录制

    今天在录制脚本的时候遇到一个问题 因为公司的电脑IE版本为IE9 且不能降低版本 所以设置了个loadrunner代理 代理是设置了应用服务器的IP和端口 但是在录制的时候很多静态文件没有出来 因为loadrunner代理只能代理录制代理I
  • Spark-特征选择(scala)

    spark特征选择 基于scala语言编写 ChiSqSelector 特征选择试图识别用来构建模型的相关特征 它减少了特征空间的大小 既可以提高速度又可以提高统计学习行为的结果 ChiSqSelector实现了卡方特征选择 它能够操作带有
  • s捕捉异常处理是使用js try catch方式

    在JavaScript可以使用try catch来进行异常处理 例如 try foo bar catch e alert e name e message 目前我们可能得到的系统异常
  • Kali使用VMware安装方法。

    Kali使用VMware安装方法以及修改中文界面 一直使用的Centos系统 今天我们换种口味 来玩玩kali 1 什么是kali 手指犹如轻快的舞步在键盘上不断地敲击着 清脆的咔擦声音刺回荡在空荡的房间 黑绿色的屏幕光反射在一张恐怖的面具
  • 微信小程序是怎么做的?

    微信小程序是一种轻量级的应用 它可以在微信内部直接使用 无需下载和安装 那么 微信小程序是怎么做的呢 微信小程序制作的大概步骤 微信小程序制作主要包括以下几个步骤 注册小程序账号 在小程序制作工具创建小程序 设计小程序页面 提交审核 成功发
  • Webpack学习

    webpack是一种打包工具 安装 npm install webpack webpack cli webpack dev server D webpack配置文件 可命名 webpack config js 单个总的配置文件 也可以拆分成