Relay/GraphQL 当我在服务器端更新模式时,模式缓存没有更新

Relay/GraphQL Schema cache not updating when I update schema on server side

我有一个使用 Relay 的 React 应用程序和一个远程 GraphQL 服务器。当我启动 webpack 服务器时,我让它获取最新的模式并将其提供给 babel-relay-plugin。

效果很好....除非我更改架构。似乎 React 或 Relay 或 webpack 或其他东西正在缓存架构,因为当我 运行 应用程序时,我会在浏览器控制台中收到架构验证错误。但是,当我 运行 使用 GraphIQL 手动对 GraphQL 服务器进行查询时,查询成功。所以我想它必须是反应、中继、webpack 方面的某种缓存?

我尝试过的事情:

  1. 列表项
  2. 正在重启 webpack 服务器
  3. 删除 node_modulesnpm install
  4. 我什至尝试过重新启动我的电脑(这似乎确实有效,但可能是巧合)

在此先感谢您的帮助。

当我切换到 Webpack 2 时,这发生在我身上。

我的解决方案是将 babelRelayPlugin 移动到 .babelrc 中第一个执行的插件。

虽然我不太确定为什么。

事实证明,这当然是人为错误。我的 cacheDirectory 在我的 babel-loader 查询中有 true 。您可以在 babel-loader 自述文件中阅读它(只需在 'cacheDirectory' 页面上查找)https://github.com/babel/babel-loader

一旦我将其更改为 false,这是默认设置。问题消失了。希望能帮到别人。