当我在服务器端更新架构时,Relay / GraphQL架构缓存不会更新

时间:2016-09-01 12:41:07

标签: node.js caching reactjs relayjs graphql-js

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

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

我尝试过的事情:

  1. 列表项
  2. 重新启动webpack服务器
  3. 删除node_modulesnpm install
  4. 我甚至尝试重新启动计算机(实际上似乎有效,但可能是巧合)
  5. 提前感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

事实证明,这是人为错误。我在babel-loader查询中将cacheDirectory设置为class A{ private: int * a; int * b; private: A(){ a = new int[100]; b = new int(100); } ~A(){ delete [] a; delete b; } } 。您可以在babel-loader自述文件中阅读它(只需在页面上找到'cacheDirectory')https://github.com/babel/babel-loader

我将其更改为true,这是默认设置。问题消失了。希望能帮助他人。

答案 1 :(得分:3)

当我切换到Webpack 2时发生了这种情况。

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

我不确定原因。