Webpack5 基本使用和基本配置

2023-10-27

  • 依赖环境:NodeJS 16+
  • 前置知识:1)对NodeJS各个核心模块操作有一定认识,比如fs、path、os等   2)对React和Vue有一定的认识,并且开发过项目 

为什么要使用 Webpack5?

开发时,我们会使用框架React/Vue,ES6模块语法,Less/Sass等css预处理器等语法进行开发,这样的代码要想在浏览器运行必须经过编译成浏览器能识别的JS,CSS等语法才能运行,所以需要打包工具来完成这些事,除此之外,打包工具还能压缩代码、做兼容性处理、提升代码性能等。

Webpack 介绍

webpack 是一个静态模块打包工具。它会以一个或多个文件作为打包入口,将整个项目所有文件编译组合成一个或多个文件输出出去。输出的文件就是编译好的文件,就可以在浏览器中运行了。将Webpack输出的文件叫做 bundle。

Webpack 功能介绍

  • 开发模式:仅能编译JS中的 ES Module 语法
  • 生产模式:能编译JS中的ES Module语法,还能压缩JS代码

Webpack 基本使用

  1. 初始化packagge.json文件(包描述文件)   npm init -y

使用 npm init -y 生成的package.json 文件,注意:1)包名不能为webpack,因为等会要下载webpack,这这里包名为webpack,会导致下载webpack报错  2)记得换自己主文件的路径

2. 下载依赖 webpack 和 webpack-cli 到开发依赖中  npm i webpack webpack-cli -D

  • webpack-cli:webpack的指令
  • npx 指令可以将node_modules下的bin目录临时添加为环境变量

3. 启用webpack 

  • 开发模式 npx webpack ./src/main.js --mode=development
  • 生产模式 npx webpack ./src/main.js --mode=production

./src/main.js:指定Webpack从main.js文件开始打包,既会打包main.js,还会将其依赖一起打包

npx webpack :是用来运行本地安装 Webpack 包的

--mode==xxx:指定模式(环境)

 默认Webpack会将文件打包输出到dist目录下,我们查看dist目录下文件情况就可以了

 

 测试一下,看编译的代码是否可以运行,这里我们需要把index.html文件里引入的 js文件路径改成打包好的 js文件路径,即将 ../src/main.js 改成 ..dist/main.js

 Webpack 基本配置 

5大核心概念:

1.entry(入口):指示Webpack从哪个文件开始打包

2.output(输出):指示Webpack打包完的文件输出到哪里去,如何命名等

3.loader(加载器):Webpack本身只能处理js、json等资源,其他资源需要借助loader,Webpack才能解析

4.plugins(插件):扩展Webpack的功能

5.mode(模式):主要由两种模式:开发模式:development,生产模式:production

webpack 配置文件:

在项目的下一级目录创建 webpack.config.js 文件,以下为基础配置:

const path = require('path');   //node.js核心模块,专门用来处理路径问题

module.exports = {
    // 入口
    entry: './src/main.js',   //相对路径
    // 输出
    output: {
        // __dirname  nodejs的变量,代表当前文件的文件夹目录
        path: path.resolve(__dirname, "dist"),   //文件的输出绝对路径
        filename: 'main.js'   //文件的输出名称
    },
    // 加载器
    module:{
        rules:[
            // loder的配置
        ]
    },
    // 插件
    plugins:[
        // plugins的配置
    ],
    // 模式
    mode:'development'
}

当我们创建了一个配置文件时,此时运行命令为:npx webpack  ,当我们运行这个指令时,webpack 会去项目的目录下去找 webpack.config.js 文件,去读取里面的配置,按照里面的配置去执行相应的打包操作

  • 没有配置文件:npx webpack ./src/main.js --mode=development
  • 有配置文件:   npx webpack

 开发模式

开发模式主要做两件事:

1. 编译代码,使浏览器能识别认识

webpack本身只能处理 js 和 json 等资源,但开发时我们有样式资源、字体图标、图片资源、html资源等,webpack默认都不能处理这些资源,所以我们要加载配置来编译这些资源

2. 代码质量检查,树立代码规范

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

Webpack5 基本使用和基本配置 的相关文章

随机推荐

  • 二、三层转发原理(多例详解,图文相结合说明ping过程)

    首先要了解 源主机在发起通信之前 会将自己的IP与目的主机的IP进行比较 如果两者位于同一网段 用网络掩码计算后具有相同的网络号 那么源主机发送arp请求广播报 请求目的主机的mac地址 在收到目的主机的ARP应答后获得对方的物理层 MAC
  • mysql 错误代码1171

    在创建主键id的时候没有取消上图的允许空值 导致报错1171 Error All part of primary key must be not null when installing flag module 转载于 https www
  • 一位股市天才的肺腑独白:一直只用MACD指标来炒股

    在股市投资中 MACD指标作为一种技术分析的手段 得到了投资者的认知 但如何使用MACD指标 才能使投资收益达到最佳境界 却是知者甚微 在股市操作中 MACD指标在保护投资者利益方面 远超过它发现投资机会的功效 如何巧用MACD指标 在股海
  • linux 重启服务器命令

    Linux有如下的关机和重启命令 shutdown reboot halt poweroff 那么它们有什么区别呢 shutdown 建议使用的命令 shutdown是最常用也是最安全的关机和重启命令 它会在关机之前调用fsck检查磁盘 其
  • 计算机系统基础摘记——程序的链接

    目录 1 初探链接 1 1 可执行文件的生成过程 1 2 链接器的由来 1 3 概述链接器的关键作用 1 4 链接带来的好处 2 目标文件 2 1 一些基本概念 2 2 可重定位文件 2 2 1 可重定位文件的格式 2 2 2 ELF头的格
  • 基础算法题——Harder Gcd Problem(数论、思维)

    题目 题目链接 给定一个 n 将 2 n 内的数进行一对一匹配 每个数仅能利用一次 假设 a 与 b 匹配 则 gcd a b 1 现求 2 n 内最大匹配数量 并输出匹配数对 输入 T代表输入组数 下面T行 每一行一个数字n 输出 输出最
  • 数据结构之邻接表及广度优先遍历

    一 邻接表的概念 邻接表是图的一种最主要存储结构 相当于图的压缩存储 用来描述图上的每一个点 图的邻接表存储方法跟树的孩子链表示法相类似 是一种顺序分配和链式分配相结合的存储结构 如这个表头结点所对应的顶点存在相邻顶点 则把相邻顶点依次存放
  • JavaWeb --- CSS

    一 CSS技术介绍 CSS是 层样式表单 是用于 增强 控制网页样式并允许将样式信息与网页内容分离的一种标记性语言 二 CSS语法规则 三 CSS和HTML结合方式 第一种 在标签的style属性上设置key value value 修改标
  • 简单易学的机器学习算法——SVD奇异值分解

    一 SVD奇异值分解的定义 假设是一个的矩阵 如果存在一个分解 其中为的酉矩阵 为的半正定对角矩阵 为的共轭转置矩阵 且为的酉矩阵 这样的分解称为的奇异值分解 对角线上的元素称为奇异值 称为左奇异矩阵 称为右奇异矩阵 二 SVD奇异值分解与
  • 【加载静态资源很慢】解决浏览器加载静态资源阻塞

    开门见山讲方法 增加浏览器的最大并发连接数 避免静态资源的加载请求排队而被其他请求阻塞 仅测试火狐浏览器可用 Chrome据我所知不支持此项配置 IE浏览器需要通过修改组策略 未测试 正文 存在问题 今天调试网页时 网页加载缓慢 一方面主要
  • es基本配置文件详解

    基本概念 近实时 Near Realtime NRT Elasticsearch是一个接近实时的搜索平台 这意味着从索引文档的时间到可搜索的时间之间存在轻微的延迟 通常为一秒 集群 Cluster 集群是一个或多个节点 服务器 的集合 它们
  • FPGA篇(十二)仿真中 `timesclae的用法

    timescale 1ns 1ps 小实验 timescale 1ns 1ps 前面是刻度 小数点之前 后面是精度 小数点之后 一旦超过了精度 就会四舍五入 modelSim仿真 仿真代码如下所示 timescale 1ns 1ps reg
  • 关于Failed to load plugin ‘vue‘ declared in ‘.eslintrc.js‘: createRequire is not a function报错处理

    今天从git上拉了项目代码 install之后就run dev准备跑项目 突然报错TypeError Failed to load plugin vue declared in eslintrc js createRequire is no
  • 免费HTTP代理怎么样

    现在是信息时代 很多互联网场景比如爬虫信息采集 电商效果补量 网上推广等等 都离不开HTTP代理IP 而很多人第一个想到的就是免费HTTP代理 什么是代理服务器 代理服务器是介于浏览器和Web服务器之间的一台服务器 当你通过代理服务器上网浏
  • 提高机器学习模型性能的五个关键方法

    如何提高机器学习模型性能 可从五个关键方面入手 1 数据预处理 2 特征工程 3 机器学习算法 4 模型集成与融合 5 数据增强 以下是各个方面的具体分析和方法 说明 1 这里主要是各个关键方法的知识汇总梳理 便于集中学习 具体的实际应用内
  • 大数据面试知识点梳理

    1 hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构 主要解决海量数据存储与计算的问题 其中主要包括HDFS MapReduce和Yarn框架 2 HDFS HDFS四大机制 心跳机制 安全机制 机架策略
  • PHP取整,四舍五入取整、向上取整、向下取整、小数截取

    PHP取整数函数常用的四种方法 1 直接取整 舍弃小数 保留整数 intval 2 四舍五入取整 round 3 向上取整 有小数就加1 ceil 4 向下取整 floor 一 intval 对变数转成整数型态 intval如果是字符型的会
  • linux oom日志分析,oom killer理解和日志分析:知识储备

    oom killer日志分析 这是前篇 准备一些基础知识 带着问题看 1 什么是oom killer 他是Linux内核设计的一种机制 在内存不足的会后 选择一个占用内存较大的进程并kill掉这个进程 以满足内存申请的需求 内存不足的时候该
  • composer Ratchet 实验心得

    博客迁移 时空蚂蚁http cui zhbor com 你首先要做的是把自己的PHP升级到5 3以上 需要支持命名空间 简介 Composer是PHP中用来管理依赖关系的工具 你可以在自己的项目中声明所依赖的外部工具库 libraries
  • Webpack5 基本使用和基本配置

    依赖环境 NodeJS 16 前置知识 1 对NodeJS各个核心模块操作有一定认识 比如fs path os等 2 对React和Vue有一定的认识 并且开发过项目 为什么要使用 Webpack5 开发时 我们会使用框架React Vue