Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#2929 fixed mock server 出现新问题 #2934

Open
luoqiling opened this issue Jan 10, 2020 · 12 comments · May be fixed by #3304
Open

#2929 fixed mock server 出现新问题 #2934

luoqiling opened this issue Jan 10, 2020 · 12 comments · May be fixed by #3304
Labels

Comments

@luoqiling
Copy link

luoqiling commented Jan 10, 2020

#2929 fixed mock server 出现新问题:
当mock目录里的接口配置文件被修改后,终端里有提示”> Mock Server hot reload success! changed“,接着在页面里再次发送post请求,提示405(所有post请求失败,除了get请求)

复现步骤:
1、yarn dev
2、修改mock目录里的接口配置文件
3、在页面点击登录(405)

或:
1、yarn dev
2、在页面点击登录(登录成功)
3、修改mock目录里的接口配置文件
4、在页面点击退出(405)

@343512292
Copy link

我在这里等别人回答呢。。闲来无事过来看看!
具体修改了 mock 目录 哪个配置文件呢?具体的修改内容?

@luoqiling
Copy link
Author

luoqiling commented Jan 10, 2020

我在这里等别人回答呢。。闲来无事过来看看!
具体修改了 mock 目录 哪个配置文件呢?具体的修改内容?

mock目录下的自定义文件,例如user.js或table.js,其实一行代码都没改,是直接ctrl s,终端里有提示”> Mock Server hot reload success! changed“

@PanJiaChen PanJiaChen added the bug label Jan 10, 2020
@PanJiaChen
Copy link
Owner

webpack/webpack-dev-server#2374

webpack-dev-server 的坑

@lanlan1128
Copy link

@PanJiaChen 那处理方案是什么呢?

@PanJiaChen
Copy link
Owner

@PanJiaChen 那处理方案是什么呢?

webpack-dev-server 升级新版本 或者 用express 起服务,不基于webpack-dev-server

@lanlan1128
Copy link

尝试如下方法
一、更新webpack-dev-server为npm中的最新版本(不可行,审查源码发现代码没有更新这个bug的修复,原因是最新版本应该还没有发布的npm中)
步骤为:

  1. 命令行执行 yarn upgrade webpack-dev-server@latest --save-dev

二、更新为github上的最新版本(不可行)
步骤为:

  1. 命令行执行 yarn add https://github.com/webpack/webpack-dev-server.git --save-dev

三、通过如下操作解决了此问题

  1. 命令行执行 yarn upgrade webpack-dev-server@3.10.1 --save-dev
  2. 进入webpack-dev-server的github官网,把 /lib/Server.js的内容复制覆盖 本地项目的 node_modules\webpack-dev-server\lib\Server.js的内容

@roblues
Copy link
Contributor

roblues commented Feb 1, 2020

这个问题我已经找到原因了,找的过程非常艰辛,还没有来得及整理,否则我会提交一个pr的。
原因在于,devServer使用的express作为服务器,它采用了http-proxy-middleware插件
而这个插件本身就有对post方法的数据没法传到代理的问题。
目前的解决方案是给这个代理加一个事件处理,让它把原始的请求中的body数据手动传到代理的请求对象中。

但是,但是,
目前,题主为了规避这个问题,居然弃用了代理的方式
我晕!
chimurai/http-proxy-middleware#40

@luoqiling
Copy link
Author

@roblues 我试着加了onProxyReq事件处理,但无效,能否看下你写的代码

@DusuWen
Copy link

DusuWen commented Feb 6, 2020

尝试如下方法
一、更新webpack-dev-server为npm中的最新版本(不可行,审查源码发现代码没有更新这个bug的修复,原因是最新版本应该还没有发布的npm中)
步骤为:

  1. 命令行执行 yarn upgrade webpack-dev-server@latest --save-dev

二、更新为github上的最新版本(不可行)
步骤为:

  1. 命令行执行 yarn add https://github.com/webpack/webpack-dev-server.git --save-dev

三、通过如下操作解决了此问题

  1. 命令行执行 yarn upgrade webpack-dev-server@3.10.1 --save-dev
  2. 进入webpack-dev-server的github官网,把 /lib/Server.js的内容复制覆盖 本地项目的 node_modules\webpack-dev-server\lib\Server.js的内容

更新到3.10.3,问题得到解决

@roblues
Copy link
Contributor

roblues commented Feb 6, 2020

@roblues 我试着加了onProxyReq事件处理,但无效,能否看下你写的代码
提交了pr,请去看我的源代码
https://github.com/roblues/vue-element-admin

@fredricen
Copy link

fredricen commented Jun 15, 2020

@DusuWen 用vue-cli生成的工程,本身webpack-dev-server就是3.10.3的,但是还是有这个问题,怎么破?见mock-server热更新问题 #3214

@puer puer linked a pull request Jul 6, 2020 that will close this issue
@puer
Copy link

puer commented Jul 6, 2020

@PanJiaChen 请看看我这个PR #3304 应该能够修复热更新时路由错乱的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants