webpack-dev-server实现静态资源加载和proxy代理

本文详细介绍了webpack-dev-server的用途,它作为Webpack的开发服务器,提供自动编译和浏览器刷新等功能。讲解了如何配置静态资源访问,通过contentBase属性指定额外的静态文件路径。此外,还探讨了如何设置Proxy代理解决开发阶段的跨域问题,通过proxy属性配置API的代理规则,实现本地同源请求。最后总结了webpack-dev-server在提升开发效率方面的重要性。
摘要由CSDN通过智能技术生成

webpack专辑

webpack Dev Server

webpack-dev-server 是 Webpack 官方推出的一款开发工具,根据它的名字我们就应该知道,它提供了一个开发服务器,并且将自动编译和自动刷新浏览器等一系列对开发友好的功能全部集成在了一起。

Webpack 官方推出 webpack-dev-server 这款工具的初衷,就是为了提高开发者日常的开发效率,而且它是一个高度集成的工具,使用起来十分的方便

webpack-dev-server 同样也是一个独立的 npm 模块,所以我们需要通过 npm 将 webpack-dev-server 作为项目的开发依赖安装。安装完成过后,这个模块为我们提供了一个叫作 webpack-dev-server 的 CLI 程序,我们同样可以直接通过 npx 直接去运行这个 CLI,或者把它定义到 npm scripts 中,具体操作如下:

# 安装 webpack-dev-server
$ npm install webpack-dev-server --save-dev
# 运行 webpack-dev-server
$ npx webpack-dev-server

安装webpack-dev-server:
在这里插入图片描述
运行 webpack-dev-server 这个命令时,它内部会启动一个 HTTP Server,为打包的结果提供静态文件服务,并且自动使用 Webpack 打包我们的应用,然后监听源代码的变化,一旦文件发生变化,它会立即重新打包,大致流程如下:

在这里插入图片描述
不过这里需要注意的是,webpack-dev-server 为了提高工作速率,它并没有将打包结果写入到磁盘中,而是暂时存放在内存中,内部的 HTTP Server 也是从内存中读取这些文件的。这样一来,就会减少很多不必要的磁盘读写操作,大大提高了整体的构建效率。

在这里插入图片描述
我们还可以为 webpack-dev-server 命令传入一个 --open 的参数,用于自动唤起浏览器打开我们的应用。打开浏览器过后,此时如果你有两块屏幕,就可以把浏览器放到另外一块屏幕上,然后体验一边编码,一边即时预览的开发环境了。

配置选项

Webpack 配置对象中可以有一个叫作 devServer 的属性,专门用来为 webpack-dev-server 提供配置,具体如下:

// ./webpack.config.
Webpack-dev-server是一个轻量级的开发服务器,它能够实时编译你的Webpack打包项目,同时提供热加载功能,让你在开发过程中无需刷新页面就能看到代码改动的影响。以下是Webpack-dev-server的一些常见配置选项: 1. **host**: 设置服务器监听的地址,默认为localhost,你可以设置成"0.0.0.0"让其监听所有网络接口。 ```javascript devServer: { host: '0.0.0.0' } ``` 2. **port**: 设定服务器监听的端口,默认为8080,可以根据需要更改。 ```javascript devServer: { port: 3000 } ``` 3. **hot**: 启用热加载,当代码修改后自动替换已存在的模块,而不是刷新整个页面。 ```javascript devServer: { hot: true } ``` 4. **publicPath**: 配置生成的静态资源URL前缀,对于CSS和JS等资源的引用路径。 ```javascript devServer: { publicPath: '/dist/' } ``` 5. **proxy**: 当你需要代理其他服务器的请求时,可以使用此配置。 ```javascript devServer: { proxy: { '/api': { target: 'http://example.com/api', pathRewrite: { '^/api': '' }, secure: false // 如果目标服务器需要HTTPS,则设为true } } } ``` 6. **inline**: 内嵌模式,直接在浏览器中显示js代码。 ```javascript devServer: { inline: true } ``` 7. **open**: 自动在浏览器中打开服务器,方便调试。 ```javascript devServer: { open: true } ``` 8. **watchOptions**: 可以自定义Webpack的WatchOptions来控制编译行为。 配置完成后,通过`npm start`或者`yarn start`命令启动webpack-dev-server。记得在Webpack配置文件中添加相关的devServer配置到plugins部分,如`new WebpackDevServer(config)`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值