Webpack5学习笔记(基础篇五)—— mode之Development环境相关参数配置
在Webpack5中,mode(模式)
有三种:
development(开发环境模式)
production(生产环境模式)
none或' '(空)
在不同模式中,我们可能对于webpack.config.js
配置文件进行不同参数的设置
比如,在development开发环境
中,我们可能使用devTool
,devServer
等对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
中配置devServer
的static
参数
devServer:{static:'./dist'
},
static:'./dist'
表示devServer
将当前指向的物理路径设置成dist文件
,作为我们server的根目录
打包:
npx webpack
启动webpack-dev-server
:
npx webpack-dev-server
打开http://localhost:8080/
,我们发现在控制台中成功打印了hello
, 同时开启了Hot Module Replacement enabled
和 Live 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环境相关参数配置相关推荐
- MySQL学习笔记-基础篇1
MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...
- Redis学习笔记①基础篇_Redis快速入门
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...
- MySQL学习笔记-基础篇2
MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...
- extlink.php,ExtJs 学习笔记基础篇 Ext组件的使用_extjs
昨天刚接触到Extjs,简单写了篇学习笔记,今天继续. 天介绍一下Ext中组件举几个简单的例子做说明.注意:文章内容有些摘自本人学习过程中看到的资料. Ext2.0对框架进行了非常大的重构,其中最重要 ...
- 【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. ...
- java学习笔记-基础篇
Java基础篇 1-12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28-31异常 1-12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...
- 易语言学习笔记——基础篇
易语言学习笔记20180710 一. 易语言的数据类型可以分为基本数据类型和特殊数据类型 1. 其中基本数据类型分为: ① 数值型 ② 逻辑型 ③ 日期时间型 ④ 文本型 ⑤ ...
- python3多线程编程_Python 3多线程编程学习笔记-基础篇
本文是学习<Python核心编程>的学习笔记,介绍了Python中的全局解释器锁和常用的两个线程模块:thread, threading,并对比他们的优缺点和给出简单的列子. 全局解释器锁 ...
- C++ 学习笔记----基础篇
(一)类和抽象数据类型 1.通过类实现的接口(公有和私有)可实现信息隐藏.实现对数据的封装等: 2.抽象数据类型(ADT:Abstract Data Type):当一个数据类型仅暴露公有接口,而将 ...
最新文章
- 半小时训练亿级规模知识图谱,亚马逊AI开源知识图谱嵌入表示框架DGL-KE
- lua学习笔记之日期时间
- 使用curl操作InfluxDB
- 关节点(atriculation point)算法
- 9.2 协同过滤-机器学习笔记-斯坦福吴恩达教授
- 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这
- 专访 | 神策数据CEO桑文锋:谁说大数据不需要「小而美」
- 盛最多水的容器—leetcode11
- 下拉框控件、列表控件、ComboBox
- Apache出现AH00558错误解决办法
- 从文件中读取一个long型数_Python 从文件中读取数据
- 为什么读大学时做学术比搞项目重要?
- js实现视频时间段拖拽编辑
- 知名学者,全职加盟C9高校!
- OpenHarmony 内核 liteos_A和lite_M
- 2018年下半年软考--软件设计师上午试题及参考答案
- 大数据图书分享-Python数据可视化实战课程
- 什么是张量 (tensor)?
- 用Java和Jquery实现了一个砸金蛋例子
- ddt数据驱动 python_Python3数据驱动ddt