在Webpack5中,mode(模式)有三种:

  • development(开发环境模式)
  • production(生产环境模式)
  • none或' '(空)

在不同模式中,我们可能对于webpack.config.js配置文件进行不同参数的设置

比如,在development开发环境中,我们可能使用devTooldevServer等对webpack打包后的代码进行浏览器调试;在production生产环境中,我们可能在optimization配置下面的minimizer中使用CssMinimizerPlugin进行Css代码压缩,在performance配置下面使用hints解决打包时性能方面超出的提示

1、webpack-dev-server

webpack-dev-server提供了一个基本的 web server,并且具有 live reloading(实时重新加载)的功能。

首先,我们安装webpack-dev-server

npm install webpack-dev-server --save-dev
或
npm install webpack-dev-server -D

1.1、devServer的基础配置

接着,我们在目录下创建相关文件

hello.js

function hello(){console.log("hello")
}
export default hello

index.js

import hello from './hello'hello()

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>你是——YYDS</title>
</head>
<body>
</body>
</html>

webpack.config.js

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')module.exports = {entry : './src/index.js',output : {/* 指定输出文件的文件名称 */filename:'bundle.js',/* path必须使用绝对路径 *//* 指定输出文件的路径 */path:path.resolve(__dirname,'./dist')clean:true},mode : 'development',/* development环境通过控制台定位代码执行在具体哪一行 */devtool:'inline-source-map',plugins:[new HtmlWebpackPlugin({template:'./index.html',filename:'app.html',inject:"body"})],devServer:{static:'./dist'},
}

可以看出,在webpack.config.js中配置devServerstatic参数

devServer:{static:'./dist'
},

static:'./dist'表示devServer将当前指向的物理路径设置成dist文件,作为我们server的根目录

打包:

npx webpack

启动webpack-dev-server

npx webpack-dev-server


打开http://localhost:8080/,我们发现在控制台中成功打印了hello, 同时开启了Hot Module Replacement enabledLive Reloading enabled

当我们将我们的hello.js中hello改为hello world,保存后,浏览器控制台会同步更新

1.2、webpack-dev-server的真相

事实上,webpack-dev-server没有真正输出任何物理文件,它只是将我们打包后的bundle文件存放到了内存中。

为了测试,我们将刚才通过npx webpack打包后的dist文件夹整个删除

然后我们重新刷新浏览器,发现浏览器控制台仍然打印了hello world

如果你还有疑问,我们接着测试,我们ctrl + c先关闭当前webpack-dev-server,再重新启动webpack-dev-server,同时我们将hello world改为hello world !!,然后我们重新刷新浏览器,发现浏览器控制台仍然打印了hello world !!

Webpack5学习笔记(基础篇五)—— mode之Development环境相关参数配置相关推荐

  1. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  2. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  3. MySQL学习笔记-基础篇2

    MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...

  4. extlink.php,ExtJs 学习笔记基础篇 Ext组件的使用_extjs

    昨天刚接触到Extjs,简单写了篇学习笔记,今天继续. 天介绍一下Ext中组件举几个简单的例子做说明.注意:文章内容有些摘自本人学习过程中看到的资料. Ext2.0对框架进行了非常大的重构,其中最重要 ...

  5. 【JavaScript笔记 · 基础篇(五)】Array全家桶(引用数据类型中的数组 / Array对象 / Array.prototype)

    文章目录 一. 引用数据类型中的数组 1.1 概述 1.2 初始化 1.2.1 字面量 1.2.2 构造函数模式 1.3 访问 1.4 length属性 1.5 数组遍历 1.6 类数组对象 1.6. ...

  6. java学习笔记-基础篇

    Java基础篇 1-12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28-31异常 1-12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

  7. 易语言学习笔记——基础篇

    易语言学习笔记20180710 一. 易语言的数据类型可以分为基本数据类型和特殊数据类型 1.     其中基本数据类型分为: ①   数值型 ②   逻辑型 ③   日期时间型 ④   文本型 ⑤  ...

  8. python3多线程编程_Python 3多线程编程学习笔记-基础篇

    本文是学习<Python核心编程>的学习笔记,介绍了Python中的全局解释器锁和常用的两个线程模块:thread, threading,并对比他们的优缺点和给出简单的列子. 全局解释器锁 ...

  9. C++ 学习笔记----基础篇

    (一)类和抽象数据类型   1.通过类实现的接口(公有和私有)可实现信息隐藏.实现对数据的封装等: 2.抽象数据类型(ADT:Abstract Data Type):当一个数据类型仅暴露公有接口,而将 ...

最新文章

  1. 半小时训练亿级规模知识图谱,亚马逊AI开源知识图谱嵌入表示框架DGL-KE
  2. lua学习笔记之日期时间
  3. 使用curl操作InfluxDB
  4. 关节点(atriculation point)算法
  5. 9.2 协同过滤-机器学习笔记-斯坦福吴恩达教授
  6. 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这
  7. 专访 | 神策数据CEO桑文锋:谁说大数据不需要「小而美」
  8. 盛最多水的容器—leetcode11
  9. 下拉框控件、列表控件、ComboBox
  10. Apache出现AH00558错误解决办法
  11. 从文件中读取一个long型数_Python 从文件中读取数据
  12. 为什么读大学时做学术比搞项目重要?
  13. js实现视频时间段拖拽编辑
  14. 知名学者,全职加盟C9高校!
  15. OpenHarmony 内核 liteos_A和lite_M
  16. 2018年下半年软考--软件设计师上午试题及参考答案
  17. 大数据图书分享-Python数据可视化实战课程
  18. 什么是张量 (tensor)?
  19. 用Java和Jquery实现了一个砸金蛋例子
  20. ddt数据驱动 python_Python3数据驱动ddt

热门文章

  1. Mattias Lasse:PDD-net in MICCAI
  2. 广域网中三种链路连接方式
  3. Windows应急响应排查思路,应急响应基础技能
  4. 负载转矩观测器的设计与仿真实现(二)
  5. Unable to resolve table '表名'
  6. python中的元组和列表的核心区别
  7. python什么是鸭子类型
  8. web开发学习路线,北京两年前端开发工资多少
  9. 相遇是春风十里的任意门
  10. linux下网络编程(TCP连接的建立)