【webpack4.0】---webpack的基本使用(三)
一、webpack-dev-server
1、安装
cnpm install webpack-dev-server -D
2、作用
开启一个web服务,监听文件的变化并自动刷新网页,做到实时预览。支持 Source Map,以方便调试
3、基本使用
devServer:{
contentBase:path.join(__dirname,"dist"),
host:"127.0.0.1"
open:true,
proxy:{
"/api":{
target:"http://www.baidu.com",
changeOrigin:true
}
},
prot:8080
}
contentBase:本地服务器加载页面的目录
host:指定使用的主机地址
hot:热模块替换
hotOnly:在没有页面刷新的情况下启用热模块替换
open:告诉dev-server在服务器启动后打开浏览器。将其设置true为打开默认浏览器。
proxy:代理 服务器代理跨域
prot:设置端口号
二、热模块更新 (Hot Module Replacement)
1、作用
假设当我们的模块样式发生改变的时候只需要更新css即可,不需要将整个页面进行重新加载。方便用于调试css
2、基本使用
constwebpack=require("webpack");
module.exports ={
devServer:{
contentBase:"./dist",
open:true,
port:8080,
hot:true,//开启Hot Module Replacement
hotOnly:true
},
plugins:[
newwebpack.HotModuleReplacementPlugin()//webpack自带的插件
]
}
三、sourceMap配置(问题)
sourceMap是一个映射关系,它会将我们打包后的文件出错的部分对应打包前文件出错的部分,这样对于我们的代码调试是非常方便的
sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术
注意如果配置了sourceMap后打包的速度回变慢
module.exports={
devtool:"none"//关闭
devtool:"source-map"
devtool:"inline-source-map"//会将映射的文件已字符串的形式放入打包文件中
}
module.exports={
devtool:"cheap-module-eval-source-map",//dev环境
devtool:"cheap-module-source-map",//线上环境
}
inline:会将映射的文件已 字符串的形式放入打包文件中去
cheap:只会负责业务代码中的错误,不会负责node_modules中的错误
module:可以让source负责node_modules中的错误
四、resolve
Webpack 在启动后会从配置的入口模块出发找出所有依赖的模块,Resolve 配置 Webpack 如何寻找模块所对应的文件。Webpack 内置 JavaScript 模块化语法解析功能,默认会采用模块化标准里约定好的规则去寻找,但你也可以根据自己的需要修改默认的规则
alias
配置项通过别名来把原导入路径映射成一个新的导入路径
resolve:{
alias:{
components: path.join(__dirname,'./src/components/')
}
}
extensions
在导入语句没带文件后缀时,Webpack 会自动带上后缀后去尝试访问文件是否存在。resolve.extensions 用于配置在尝试过程中用到的后缀列表,默认是
['.js', '.json']也就是说当遇到
require('./data')这样的导入语句时,Webpack 会先去寻找./data.js文件,如果该文件不存在就去寻找./data.json文件, 如果还是找不到就报错
resolve: {
extensions: ['.ts', '.tsx', '.js'],
},
五、webpack-merge
分离配置文件
我们在根目录下创建config文件夹,并创建四个配置文件:
webpack.comm.js 公共环境的配置文件
webpack.development.js 开发环境下的配置文件
webpack.production.js 生产环境下的配置文件
webpack.parts.js 各个配置零件的配置文件
如果配置文件被分成了许多不同的部分,那么必须以某种方式来组合他们,通常就是合并数组和对象,webpack-merge很好的做到了这一点。
webpack-merge做了两件事:它允许连接数组并合并对象,而不是覆盖组合
安装
cnpminstallwebpack-merge--save-dev
设置各个配置文件的连接
constbaseWebpackConfig=requie("./config/base.config.js");
constwebpackMerge=require('webpack-merge');
constwebpackConfig=webpackMerge(baseWebpackConfig, {
})
module.exports=webpackConfig
【webpack4.0】---webpack的基本使用(三)的更多相关文章
- [转]webpack4.0.1安装问题和webpack.config.js的配置变化
本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...
- 【webpack4.0】---webpack的基本使用(一)
一.初识webpack 1.什么是webpack? WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss ...
- webpack4.0.1安装问题和webpack.config.js的配置变化
The CLI moved into a separate package: webpack-cli. Please install 'webpack-cli' in addition to webp ...
- webpack工具学习 构建简单vue项目(不依赖vue-cli) webpack4.0
目的用webpack构建简单前端项目 1.npm init (npm init -y) 形成package.json 2.npm install --save-dev webpack 形成 n ...
- 史上最走心webpack4.0中级教程——配置之外你应该知道的事
<webpack4.0各个击破系列>适合不满足于只会配置webpack但一时间又看不懂源码的中级读者.我没法保证这个系列是最好的,但至少能保证每一篇博文都跟那些Ctrl+C和Ctrl+V的 ...
- webpack4.0各个击破(1)—— html部分
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(2)—— CSS篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(4)—— Javascript & splitChunk
目录 一. Js模块化开发 二. Js文件的一般打包需求 三. 使用webpack处理js文件 3.1 使用babel转换ES6+语法 3.2 脚本合并 3.3 公共模块识别 3.4 代码分割 3.5 ...
- webpack4.0各个击破(6)—— Loader篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(8)—— tapable篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
随机推荐
- git clone报错: Out of memory, malloc failed (tried to allocate 524288000 bytes)
IDEA 拉取项目报错:Out of memory, malloc failed (tried to allocate 524288000 bytes) 执行 git config --global ...
- windows10使用VS(VC++)创建c++多进程命名管道通信
代码可以在 这里 下载 代码主要涉及到: 管道通信 多线程(含临界区) 多进程通信 创建的子进程独立运行 更新日志: 04-12-2020 1. 去除自定义函数返回值,改为int作为函数返回值并增加相 ...
- ubuntu下AF_INET和AF_INET6的值
关于 演示环境 $ uname -a Linux xxxxxxx 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 ...
- Revolving Digits(hdu4333)
Revolving Digits Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 如何利用Python实现Office在线预览
目前,市场对于Office在线预览功能的需求是很大的.对于我们用户本身来说,下载Office文件后再实现预览是极其不方便的,何况还有一些不能打开的专业文档.压缩文件等.此时,能提供在线预览服务的软件就 ...
- 【C++】leetcode竞赛笔记
*注--代码非博主本人所写,仅供学习参考,侵删 20200516双周赛: 1 to_string(int a) 将a转换成字符串形式 2 gcd(int a,int b) 返回a,b的最大公约数,若 ...
- TYPEC转HDMI+PD+USB3.0拓展坞三合一优化方案|CS5266 dmeoboard原理图
CS5266 Capstone 是Type-C转HDMI带PD3.0快充的音视频转换芯片. CS5266接收器端口将信道配置(CC)控制器.电源传输(PD)控制器.Billboard控制器和displ ...
- Browser Events 常用浏览器事件
事件 说明 click 鼠标点击时触发此事件 dblclick 鼠标双击时触发此事件 mousedown 按下鼠标时触发此事件 mouseup 鼠标按下后松开鼠标时触发此事件 mouseover 当鼠 ...
- localstorage的浏览器支持情况
localStorage的兼容性不错,就国内的情况,已经基本没有问题了.localStorage的原理很简单,浏览器为每个域名划出一块本地存储空间,用户网页可以通过localStorage命名空间进行 ...
- Ranger-Usersync安装
Ranger-Usersync安装, 配置数据源Unix,Usersync从Unix拉取Users/Groups的数据源, 对应的Ranger版本0.6.0. IP/机器名 安装软件 运行进程 zdh ...