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

当以文件嵌套方式引用时 mock 数据并不会热更新 #107

Open
TheRaindrop opened this issue May 28, 2020 · 7 comments
Open

当以文件嵌套方式引用时 mock 数据并不会热更新 #107

TheRaindrop opened this issue May 28, 2020 · 7 comments

Comments

@TheRaindrop
Copy link

image
image
当我通过图片中展示的方法使用时,修改 mock 文件后,虽然终端上会提示文件已更新,但实际接口数据并没有变化;两种方式可以正常使用:

  1. 重启 mock
  2. 不使用嵌套引用的方法,在根文件下直接引用 mock 文件
    但每次更改数据后重启 mock 非常不便;将引用都放在根文件下并不能很好的组织整体 mock 系统,而且文件可读性变差。
    所以这是个 bug 吗?还是说无支持计划?
@jaywcjlove
Copy link
Owner

const { login } = require('./user');

@TheRaindrop 有工程可以测试吗? 不知道你使用的什么版本,目前我这里可以热更新。

@BruceCham
Copy link

@jaywcjlove 直接在 index.js 中引入对应的文件是没问题的,如果是再包装一层就无法更新数据了。

// 正常示例
const readingMock = require('./reading/user/index')
module.exports = {
  ...readingMock,
}

// 异常示例
const readingMock = require('./reading/index') // reading/index.js 与最外层的 index.js 相似,多包装一层
module.exports = {
  ...readingMock,
}

@TheRaindrop
Copy link
Author

我也又测试了一下,demo 中的嵌入第一层文件夹是可以正常热更新的,但是再嵌一层文件夹就无法热更新了,虽然会提示”文件替换成功“,但通过接口访问数据并不会发生变化
image
image

@HomyeeKing
Copy link

HomyeeKing commented Sep 2, 2020

m

@HomyeeKing
Copy link

@jaywcjlove 求作者解答 我也遇到了

@HomyeeKing
Copy link

我把嵌套的这部分放到了index里,然后就可以了,问题是不是更新的时候清除缓存的方法不对

@williamyorkl
Copy link

williamyorkl commented Apr 27, 2021

大佬,我也遇到同样的问题,要清理主路径引用时候的缓存,用这个 delete require.cache[require.resolve('./index.js')] ,其中,我的./index.js的目录是注册路由表的

但是这样的话,估计会重载所有接口的数据,理论上局部处理更好?即只清楚被修改了的文件的路径

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

No branches or pull requests

5 participants