webpack5零基础入门-13生产模式

1.生产模式介绍

生产模式是开发完成代码后,我们需要得到代码将来部署上线。

这个模式下我们主要对代码进行优化,让其运行性能更好。

优化主要从两个角度出发:

  1. 优化代码运行性能
  2. 优化代码打包速度

2.生产模式准备

我们分别准备两个配置文件来放不同的配置

├── webpack-test (项目根目录)├── config (Webpack配置文件目录)│    ├── webpack.dev.js(开发模式配置文件)│    └── webpack.prod.js(生产模式配置文件)├── node_modules (下载包存放目录)├── src (项目源码目录,除了html其他都在src里面)│    └── 略├── public (项目html文件)│    └── index.html├── .eslintrc.js(Eslint配置文件)├── babel.config.js(Babel配置文件)└── package.json (包的依赖管理配置文件)

3.创建config文件夹来管理不同的config文件

 注意:此时要修改生产模式配置中output中的path的路径,因为这个路径是绝对路径,会收到当前文件所处文件夹路径的影响 

在开发模式的配置中可以不用定义output中的path,因为开发模式不会产生输出,但filename需要指定

然后修改所有绝对路径

然后修改所有绝对路径

生产模式还需要将mode改成production,并去除devServer配置,这样才能输出文件

 

const path = require('path');//nodejs用来处理路径问题的模块
const ESLintPlugin = require('eslint-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const WebpackDevServer = require('webpack-dev-server');
module.exports = {/**入口 */entry: './src/main.js',/**输出 相对路径*/output: {/**文件输出路径 绝对路径*///__dirname 表示当前文件的文件夹目录path: path.resolve(__dirname, '../dist'),//所有文件的输出目录/**文件名 */filename: 'static/js/dist.js',//入口文件输出文件名clean: true,//在打包前将path整个目录内容情况},/**加载器 */module: {rules: [//loader的配置{/**test 代表要检测的文件 */test: /\.css$/, //只检测.css文件use: ['style-loader', 'css-loader'],//对检测到文件使用哪些loader},{test: /\.less$/,//只检测.less文件//loader:'xxx',loader只能使用一个loader,use可以使用多个loaderuse: ['style-loader', 'css-loader', 'less-loader'],//对检测到文件使用哪些loader},{test: /\.s[ac]ss$/,//只检测.sass文件use: ['style-loader', 'css-loader', 'sass-loader'],},{test: /\.styl$/,//只检测.stylus文件use: ['style-loader', 'css-loader', 'stylus-loader']},{test: /\.(png|jpe?g|gif|webp)$/,type: 'asset/resource',parser: {dataUrlCondition: {//小于10kb的图标转base64,减少请求数量maxSize: 10 * 1024 // 10kb}},generator: {//输出图片名称//[hash:10]hash值取前10位filename: 'static/imgs/[hash:10][ext][query]'}},/**图标字体相关配置 */{test: /\.(ttf|woff2?|mp3|mp4|avi)$/,//只对ttf、woff2资源起作用type: 'asset/resource',//加上/resource表示将资源原封不动的打包出来generator: {filename: "static/media/[hash][ext][query]"}},{test: /\.js$/,/**排除哪些文件 */exclude: /(node_modules)/,loader: 'babel-loader',// options: {//     presets: ['@babel/preset-env'],// },},]},/**插件 */plugins: [//plugin配置new ESLintPlugin({/** 检测哪些文件 */context: path.resolve(__dirname, '../src')}),new HtmlWebpackPlugin({/**模板 */template: path.resolve(__dirname, '../src/public/index.html')})],/**模式 */mode: 'production'
}

4.执行命令运行配置进行打包 

npx webpack serve --config ./config/webpack.dev.js

可以看到开发模式下不会有输出文件

npx webpack --config ./config/webpack.prod.js

可以看到生产模式下会有输出

注意生成模式的命令不要带serve

同时可以看到生产模式下打包后的js文件也被压缩了

5.配置脚本简化指令 

修改package.json添加脚本启动指令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的FastAPI 快速入门

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

《算法王晓东》多处最优服务次序问题

多处最优服务次序问题 题目描述 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≤i≤n。共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小? 平均等待时间是n个顾客等待服务时间的总和除以n。 算法设计:对于给定的n个顾…

41 物体检测和目标检测数据集【李沐动手学深度学习v2课程笔记】

目录 1. 物体检测 2. 边缘框实现 3.数据集 4. 小结 1. 物体检测 2. 边缘框实现 %matplotlib inline import torch from d2l import torch as d2ld2l.set_figsize() img d2l.plt.imread(../img/catdog.jpg) d2l.plt.imshow(img);#save def box_corner_to_center(boxes):&q…

设计模式之抽象工厂模式解析

抽象工厂模式 1)问题 工厂方法模式中的每个工厂只生产一类产品,会导致系统中存在大量的工厂类,增加系统的开销。 2)概述 a)产品族 和 产品等级结构 产品等级结构:产品的继承结构; 产品族&…

通俗理解自注意力机制

自注意力机制(Self-Attention Mechanism) 是一种用于处理序列数据的机制,最初被引入到神经网络模型中,用于在序列数据中建立全局依赖关系。自注意力机制最常用于自然语言处理和计算机视觉领域,特别是在Transformer模型…

【Flutter】文件选择器(file_picker)的用法

Flutter 没有提供内置的文件选择器,但社区内有人贡献了一个比较完整的解决方案——file_picker。 file_picker 的 API 简洁易用,支持全平台(Android / iOS / Mac / Linux / Windows),是我开发桌面应用时的首选。 这边…

HMI界面之:上位机界面设计,一文扫盲

一、什么是上位机 上位机(Supervisory Control and Data Acquisition,简称SCADA)是一种用于监控和控制工业过程的计算机系统。它通常由两个主要部分组成:上位机和下位机。 上位机是SCADA系统中的主要控制中心,负责监控…

mysql笔记:24. 主从同步环境搭建

文章目录 主从同步的基本原理主从同步的搭建步骤1. 环境准备2. 配置主服务器(Master)3. 配置从服务器(Slave)4. 测试配置5. 常见故障5.1. 主从服务器上的MySQL版本不一致导致失败?5.2. Slave_IO_Running状态异常&#…

使用ollama + webui 运行任意大模型

安装ollama https://hub.docker.com/r/ollama/ollama docker run -d -v ~/Documents/work/softs/docker/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama验证安装 # 进入容器docker exec -it ollama bash # 运行大模型 ollama run llama2 # 发送请求&…

三级数据库技术考点(详解!!)

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性,位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需 要考虑数据分片情况,不需要了解各分片在各个场地的分配情…

什么是物联网远程模块

在数字化和信息化的浪潮下,物联网技术正在以惊人的速度改变着我们的生活和生产方式。物联网远程模块,作为物联网技术的核心组件之一,正引领着这场变革。HiWoo Box就是这样一款出色的物联网远程模块,它通过支持远程透传、远程锁机、…

多进程数据库不适合作为hive的元数据库

简介 “今天发现一个比较奇怪的现象,因为博主不熟悉mysql,所以在安装hive的使用了postgresql作为hive的元数据库,在测试几个连接工具对hive进行链接,后面再测试的时候发现链接不上了,并且报错日志如下:” …

从回收站删除的文件如何恢复?图文详解(3个方法)!

“各位大佬!从回收站删除了重要的文件后,有什么方法可以恢复文件吗?快帮帮我吧!这些被删除的文件都是比较重要的!” 回收站作为电脑中的一个重要工具,当我们误删文件后,通过回收站有机会快速恢复…

QT增加线程函数步骤流程

在使用线程的时候,不仅要关注线程开启的时机,同时还要关注线程安全退出,这样才能保证程序的健壮性,如果线程开启的较多,且开启关闭比较频繁,建议使用线程池来处理。开启线程有三种方式:第一种C的…

C语言动态内存管理(重点)

目录 1、为什么要有动态内存分配 2、malloc 和 free 2.1 malloc函数 2.2 free函数 3、calloc 和 realloc 3.1 calloc函数 3.2 realloc 函数 3.3 realloc 和 malloc 区别 3.4 realloc 函数存在的问题 4、常见的动态内存的错误 5、动态内存经典笔试题分析 6、柔…

Vue.js前端开发零基础教学(一)

目录 第一章 初识Vue.js 前言 开发的好处 一.前端技术的发展 什么是单页Web应用? 二. Vue的简介 三. Vue的特性 四. Vue的版本 五.常见的包管理 六.安装node环境 第一章 初识Vue.js 学习目标: 了解前端技术的发展 了解什么是Vue掌握使用方…

Oracle19C图形界面安装教程

文章目录 一、安装前的准备1、安装Linux操作系统2、配置网络源或者本地源3、hosts文件配置 二、Oracle19c安装过程1、安装相关软件:2、用户与组:3、修改内核参数:4、资源限制:5、配置用户环境变量:6、创建相关文件目录…

如何理解 Linux 命令行参数与环境变量7

一、命令行参数 1.1参数介绍 在写C语言程序时,main函数是否可以带参数呢?------ 是可以的 int argc: 命令行参数的个数char *argv[ ]: 字符指针数组(指向各个命令行参数的字符指针所构成的数组) 我们写一段代码来打印一下看这…

基于单片机的事务管理系统

基于单片机的事务管理系统 摘 要 所谓事务管理系统就是主要用来做提醒,辅助以计时、秒表等的一个小系统。利用MCS51单片机即可完成系统硬件需要,成本低廉,程序简单,功能丰富实用,使用率广。根据题目的设计要求&#…

HW中常见的面试题

1.说说你在工作中或者SRC中挖到的比较典型的漏洞? 2.HW中如果已经发现红方IP地址,该如何溯源? 通过蜜罐系统或者安全设备锁定红方MAC,然后通过IP地址对,whois查询到该IP注册人以及注册邮箱,如果是发现邮箱是某厂商注册则可利…