webpack-serve 的使用

2023-11-05

webpack-serve

官方已经不维护了,还请继续食用webpack-dev-server

基本情况

仓库地址

配合webpack4食用最佳,在webpack3及以前的版本会有帮助信息提示

因为热加载使用的是WebSockets,所以在老版本的浏览器里用不了

和webpack-dev-server的差异

webpack-dev-server webpack-serve
Initial release 23 Dec 2014 12 feb 2018
Total releases 74 7
Github stars 3449 231
Lines of code 28301 16075
under the hood Express.js (22047 lines) Koa.js (8913 lines)
API not aligned API first
Mode only maintenance evolution
Total work slower but supports old browsers fast alternative
How is webpack-serve different from webpack-dev-server?

安装

$ npm install --save-dev webpack-serve 
或 
$ yarn add -D webpack-serve

使用

在客户端使用命令行模式:

$ webpack-serve
或
$ webpack-serve ./webpack.config.js
或
$ webpack-serve --config ./webpack.config.js

在node里使用API模式

const serve = require('webpack-serve');
serve([option]);

webpack-serve的配置

在项目的根目录/下:

1. package.json里添加serve属性
2. 创建.serverc或者.serverc.json文件,支持json或者yml的编写格式
3. 使用commonjs规范编写的serve.config.js文件

更常用的方式是在webpack的config里添加serve属性

关于webpack-serve API 模式 的 option 属性

介绍几个我觉得常用的,其余的可以在官方文档里查看

config

Type: Object

Default: {}

用于设置webpack的配置信息

const serve = require('webpack-serve');
const config = require('./webpack.config.js');
serve({config});

content

Type: String|[String]

Default: process.cwd()

用于设置静态资源的读取路径

Note: 默认情况下,该配置下的路径读取优先级高于webpack的配置路径

const serve = require('webpack-serve');
const config = require('./webpack.config.js');
serve({
    content: [__dirname],
    config
});

如果想要使用webpack的配置路径,需要使用到add附加属性的配置,在content之前调用webpack

serve({
    content: [__dirname],
    config
    add: (app, middleware, options) => {
        middleware.webpack();
        middleware.content();
    }
});
add

附加功能配置

上面的content里有简单的使用介绍

回调参数:

  • app 底层的koa应用实例
  • middleware 通过Accessor functions(访问函数)调用webpack-dev-middleware和koa-static middleware的对象。
  • options webpack的配置

还有很多功能可以添加进去

  • bonjour //局域网DNS多播
  • compress
  • historyApiFallback
  • proxy + history fallback
  • proxy + router
  • reuse Chrome tab
  • staticOptions
  • useLocalIp
  • watch content

具体可以看文档代码示例

对于单页应用来说,historyApiFallback 是很有必要的一个功能,主要是用于刷新页面后路由重定向,
对于需要做中间层api转发的还有端口和路由转发的proxy模块也是有用到的


// 因为基于koa2, 所以要把中间件用koa-connect包一层
const convert = require("koa-connect");
const history = require("connect-history-api-fallback"); // h5路由适配
serve: {
    add: (app, middleware, options) => {            
        app.use(convert(proxy('/api', { target: 'http://localhost:8000' })));
        app.use(convert(history({
            disableDotRule: true,
            verbose: true,
            htmlAcceptHeaders: ['text/html', 'application/xhtml+xml']
            // ... see: https://github.com/bripkens/connect-history-api-fallback#options
        })));
    },
    port: '3000'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webpack-serve 的使用 的相关文章

  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • 如何按单个整数字段对 JSON 进行排序? [复制]

    这个问题在这里已经有答案了 我有以下 JSON title title order 0 order 9 order 2 JSON 包含很多字段 我如何根据字段对它们进行排序order field 我一直在寻找 Nodejs 中内置的东西 但
  • 将 ESLint 与 Airbnb 样式和选项卡结合使用 (React.js)

    我正在开发一个 React js 应用程序 并且正在尝试检查我的代码 我将 ESLint 与 Airbnb 风格一起使用 但出现以下错误 src Test jsx 4 2 error Unexpected tab character no
  • 是否可以让 webpacks System.import 使用 ajax (用于进度事件)?

    所以我刚刚更新到 webpack 2 并进行了第一个工作设置 其中 webpack 通过查看 System import 调用自动创建块 相当甜蜜 但是 我使用 ajax 调用加载初始块 以便我可以加载时显示进度 https stackov
  • 配置 webpack 在单独的子文件夹中输出图像/字体

    我管理配置 webpack 将 CSS 和 JS 输出到各自的子目录中 即public asests css and public assets js 但是 我不知道如何对图像和字体执行相同的操作 换句话说 我想输出图像public ass
  • 如何使用Nodejs将json数据导出为指定格式的pdf文件?

    我是nodejs的初学者 我正在编写一个程序 将文本数据从 json 文件转换为 pdf 文件 这是我的输入文件 input json Info Company ABC Team JsonNode Number of members 4 T
  • 在哪里可以访问 Gdx.files.local()?

    我有一个预制的 json 文件 我想测试一下 这个 Json 文件将被修改 所以我想读 写 我注意到内部是只读的 所以我想将我的 Json 文件保存在本地存储中 通过 eclipse 或操作系统 windows 8 手动 以便我可以通过 f
  • 根据内容将 JSON 动态反序列化为派生类型?

    在我作为一个业余项目编写的小库中 我使用 RestSharp 从 Web API 获取 Json 反序列化为模型类对于简单类型来说效果很好 但在某些端点 结果类型在请求时未知 或不清楚 具体来说 它是 GuildWars2 API v1 一
  • 如何使用 jq 和 Bash 将 JSON 展平为 Key=Selector 的 Bash 关联数组?

    作为后续展平任意 JSON https stackoverflow com questions 42299905 using jq flatten arbitrary json to delimiter separated flat dic
  • Golang 结构的 XML 和 JSON 标签?

    我有一个可以根据 HTTP 请求标头输出为 JSON 或 XML 的应用程序 我可以通过将正确的标签添加到我正在使用的结构中来实现正确的输出 但我不知道如何为 JSON 和 XML 指定标签 例如 序列化以纠正 XML type Foo s
  • eventSources 到事件 Json,完整日历

    我正在尝试从 eventSources 获取 json 调用到我的事件 我在 eventSources 中返回的 json 是 title Title Test start 1305841052 当我将此字符串传递到事件中时 它会正确显示日
  • Javascript 从 Buffer 到 JSON

    我正在使用 bleno 一个 Node js BLE 包 它使用 Buffer 来发送和接收数据 我将如何获取 Buffer 对象并将其转换为 JSON 这就是我现在所拥有的 bufferToJson buffer toString buf
  • 如何解析 Newtonsoft JSON 中的 TimeSpan 值

    我想解析 JSON 字符串并使用token Type用于检测类型值的属性JTokenType TimeSpan 我无法弄清楚如何在输入字符串中表达 TimeSpan 所有内容似乎都被解释为 JTokenType String var tim
  • JSON - 使用Gson反序列化动态对象

    假设我有一个以下类型的 Java 类 public class MyClass public String par1 public Object par2 然后我有这个 String json par1 val1 par2 subpar1
  • 在 jQuery 中获取 Json 数据

    没有一个清晰的示例解释如何尽可能简单地拉取 json 数据 我有一个有效的 json 我需要使用 jQuery 检索它 我的 json 输出如下 title blog entries items title Can Members of t
  • 按日期对 JSON 进行排序

    我知道这一定相对简单 但我有一个 JSON 数据集 我想按日期排序 到目前为止 我每次都会遇到问题 现在我将日期存储为this lastUpdated 如果有帮助的话 我可以访问 jquery 但我意识到 sort 是本机 JS 提前致谢
  • toJSON() 和 JSON.Stringify() 之间的区别

    如果您需要读取或克隆模型的所有数据属性 请使用其 toJSON 方法 此方法返回属性的副本作为 对象 尽管有其名称 但不是 JSON 字符串 当 JSON stringify 为 使用 toJSON 方法传递一个对象 它将返回的字符串化 t
  • 为什么我无法解开根节点并反序列化对象数组?

    为什么我无法通过展开根节点来反序列化对象数组 import java io IOException import java util Arrays import java util List import org codehaus jack
  • 如何对 JSON 对象进行加密哈希?

    下面的问题比乍看起来更复杂 假设我有一个任意 JSON 对象 该对象可能包含任意数量的数据 包括其他嵌套的 JSON 对象 我想要的是 JSON 数据的加密哈希 摘要 而不考虑实际的 JSON 格式本身 例如 忽略换行符和 JSON 令牌之
  • Webpack:链接加载器

    当我使用时一切正常ejs loader and html loader分别地 compiles to

随机推荐

  • 2021-05-14 thread已经退出析构qtcreator中仍显示thread正在运行

    threadobject已经析构 thread isrunning 是false thread isfinishing 也是true 说明thread退出了 但是qtcreator调试窗口中还是可见Qthread状态竟然是正在运行 什么鬼
  • python的22个基本语法

    人生苦短 我用Python Python编程语言是最容易学习 并且功能强大的语言 只需会微信聊天 懂一点英文单词即可学会Python编程语言 但是很多人声称自己精通Python 然后自己却写不出Pythonic的代码 对很多常用的包不是很了
  • 使用QT对MYSQL数据库进行简单操作

    include 在这里插入代码片 QtMySql h include
  • Transformer之编码器

    Bert是从transformer中衍生出来的预训练的模型 transformer模型已经得到广泛应用 应用的方式是先进行预训练语言模型 然后把预训练的模型适配给下游任务 以完成各种不同的任务 比如分类 生成 标记等 1 transform
  • windows10配置自己的深度学习、机器学习工作站

    活动地址 CSDN21天学习挑战赛 1 anaconda3 官网 下载速度超级慢 查找镜像源 Windows Python 3 9 64 Bit Graphical Installer的传到了csnd下载链接 右键 管理员身份运行 否则有的
  • 前端js数据加密解密

    一 最简单的加密解密 函数escape 和unescape 二 base64加密 1 introduction base64是网络上最常见的用于传输8bit字节码的编码方式之一 base64就是一种基于64个可打印字符来表示二进制数据的方法
  • MaskRcnn(二)实例分割的图像与标签同时进行增强

    实例分割数据增强 一 增强原因 1 防止过拟合 1 1 过拟合的定义 1 2 过拟合出现的原因 1 3 解决方法 2 增强结果模型的鲁棒性和泛化能力 2 1 鲁棒性 2 2 泛化性 3 提高识别精度 二 常用数据增强方法 1 平移 2 缩放
  • Pytorch史上最全torch全版本离线文件下载地址大全(9月最新)

    以下为pytorch官网的全版本torch文件离线下载地址 torch全版本whl文件离线下载大全https download pytorch org whl torch 其中的文件版本信息如下所示 部分版本信息 根据需要仔细寻找进行下载
  • 【计算机网络】实验五 UDP

    Objective To look at the details of UDP User Datagram Protocol UDP is a transport protocol used throughout the Internet
  • VMware14创建虚拟机(centos7)

    新建虚拟机的前提是需要准备好虚拟机的镜像 我这里已经准备好的了 打开VMware 新建虚拟机 然后 选择自定义 也可以选择典型安装 下一步 下一步 下一步 下一步 下一步 下一步 在这里介绍一下创建虚拟机网络连接的几种网络类型及对应的功能
  • 李宏毅pm2.5作业【转载】

    李宏毅机器学习PM2 5作业 使用pyCharm2022 2 1版本 python10 0 python也不会 计算机也不会 啥都不会 只带了个脑子考了计算机研究生 研究生选了人工智能方向 看来注定是漫长的学习之旅 PM2 5作业 我是一个
  • 世上最全NVDIA GPU参数列表: V100, A100, A800,H100,3090,4090, A40, A30等性能参数

    1 GeForce RTX 4090 GeForce RTX 4090 GPU 引擎规格 NVIDIA CUDA 核心数量 16384 加速频率 GHz 2 52 基础频率 GHz 2 23 显存规格 标准显存配置 24 GB GDDR6X
  • GET请求传参对象的list

    之前试过get请求传参是数组 但是试的都是基本类型 现在需求要是自定义的对象 怕写的不对 就提前自测了一下 调用方代码 Resource private TestClient testClient Test public void apiT
  • B站教学资源爬虫

    B站教学资源爬虫 最近遇到了点麻烦事 各种学习网站的不维护或者转移路线 于是将目标站点定位到了b站的学习资源 所用语言和相关模块 python3 6 requests PIL 目前网站特点分析 b站是一个具有大量资源数据的网站 但是如何将目
  • 14、OSPF学习心得2

    1 OSPF的报文 1 Hell报文 作用 1 建立和发现邻居 2 维护OSPF的邻居关系 2 DBD报文 用于描述LSDB的摘要信息 3 LSR报文 用于向对方请求所需的具体的LSA信息 4 LSUpdate 用于向对方发送具体的LSA
  • 在Linux上搭建JAVAEE的开发环境

    1 安装JDK 1 下载安装包 jdk 8u121 linux x64 tar gz 2 把JDK安装包上传到Linux系统中的 opt 目录下 通过xftp软件连接上Linux 然后双击要上传的安装包即可上传 3 解压JDK安装包 命令
  • 逻辑漏洞归纳总结

    Web安全渗透方向 三大核心 输入输出 登录体系 权限认证 典型的web漏洞 注入 跨站 上传 代码执行等属于输入输出这个层级 这也是OWASP早期比较侧重的 近年来 像越权漏洞 逻辑绕过 接口安全等逐渐增多 这些属于登录体系和权限认证这个
  • LaWGPT基于中文法律知识的大语言模型_初步安装

    准备代码 创建环境 下载代码 git clone git github com pengxiao song LaWGPT git cd LaWGPT 创建环境 conda create n lawgpt python 3 10 y cond
  • 【高效办公】程序员专用云笔记推荐

    一 参考资料 推荐几款好用的云笔记软件 云 社区 腾讯云 Markdown基本语法 简书 Markdown菜鸟教程
  • webpack-serve 的使用

    webpack serve 官方已经不维护了 还请继续食用webpack dev server 基本情况 仓库地址 配合webpack4食用最佳 在webpack3及以前的版本会有帮助信息提示 因为热加载使用的是WebSockets 所以在