前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >webpack-dev-server 使用教程

webpack-dev-server 使用教程

作者头像
Karl Du
发布2023-10-20 18:56:38
2210
发布2023-10-20 18:56:38
举报
文章被收录于专栏:Web开发之路Web开发之路

webpack-dev-server是我们在开发nodejs必须要掌握的工具,它可以帮助我们快速搭建开发环境。官网介绍如下

Use webpack with a development server that provides live reloading. This should be used for development only. It uses webpack-dev-middleware under the hood, which provides fast in-memory access to the webpack assets.

简单来说,webpack-dev-server就是一个小型的静态文件服务器。使用它可以为wepack打包生成的资源文件提供Web服务

安装

代码语言:javascript
复制
$ npm install webpack-dev-server --save-dev

注意:虽然你可以全局安装webpack-dev-server,但我们建议在本地安装它

使用

官方推荐两种主流的使用方式

CLI

最简单的办法就是通过webpack CLI,在webpack.config.js文件目录下执行:

代码语言:javascript
复制
$ npx webpack serve

注意: 1、你需要预装npx确保你以上命令执行新成果,关于npx介绍请参考此篇文章 2、请注意你的webpack版本,v5版本才支持webpack serve

NPM Scripts

NPM package.json脚本是一种方便且有效的方法,可以运行本地安装的二进制文件,而不必担心它们的完整目录。示例如下:

代码语言:javascript
复制
{
  "scripts": {
    "serve": "webpack serve"
  }
}

定义好脚本后在控制台或终端运行:

代码语言:javascript
复制
$ npm run serve

NPM会自动为你引用node_modules中的二进制文件,并执行文件或命令。

结果

这两种方法都将启动一个服务器实例并开始在端口 8080 上侦听来自localhost的连接

webpack-dev-server默认配置为支持在服务器运行时编辑代码时实时重新加载文件

常用配置

以下只介绍工作中的常用配置,有关更多用例和选项,请参阅官方文档

端口配置

1、webpack配置项配置

代码语言:javascript
复制
module.exports = {
  //...
  devServer: {
    port: 8080,
  },
};

2、CLI命令启动配置

代码语言:javascript
复制
$ npx webpack serve --port 8080

自动刷新

webpack-dev-server有两种模式支持自动刷新——iframe模式和inline模式。

iframe模式下:页面是嵌套在一个iframe下的,在代码发生改动的时候,这个iframe会重新加载;在inline模式下:一个小型的webpack-dev-server客户端会作为入口文件打包,这个客户端会在后端代码改变的时候刷新页面。

1、iframe模式

使用iframe模式无需额外的配置,只需在浏览器输入:http://localhost:8080/webpack-dev-server/index.html

2、CLI命令启动配置

代码语言:javascript
复制
webpack-dev-server --inline

反向代理

Nginx类似,webpack-dev-server也是通过url正则匹配的方式进行url代理配置,常用配置参考如下:

代码语言:javascript
复制
// webpack.config.js
module.exports = {
    // ...
    devServer: {
        hot: true,
        contentBase: false, // since we use CopyWebpackPlugin.
        compress: true,
        host: 'localhost',
        port: 8080,
        proxy: {
            "/api": {
                target: 'http://localhsot:5000',
                secure: false,
                changeOrigin: true,
                logLevel: 'debug'
            }
        }
    }
}

域名白名单

配置该配置后,只有匹配的host地址才可以访问该服务,常用于开发阶段模拟网络网络防火墙对访问IP进行限制。当该配置项被配置为all时,会跳过host检查,但不建议这样做,因为有DNS攻击的风险

1、webpack配置项配置

代码语言:javascript
复制
module.exports = {
  //...
  devServer: {
    allowedHosts: [
      'host.com',
      'subdomain.host.com',
      'subdomain2.host.com',
      'host2.com',
    ],
  },
};

2、CLI命令启动配置

代码语言:javascript
复制
$ npx webpack serve --allowed-hosts .host.com --allowed-hosts host2.com

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/11/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
    • CLI
      • NPM Scripts
        • 结果
        • 常用配置
          • 端口配置
            • 自动刷新
              • 反向代理
              • 域名白名单
              • 参考
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档