【问题标题】:Relay/GraphQL Schema cache not updating when I update schema on server side当我在服务器端更新架构时,中继/GraphQL 架构缓存未更新
【发布时间】:2017-01-09 08:35:14
【问题描述】:

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

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

我尝试过的事情:

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

提前感谢您的帮助。

【问题讨论】:

  • 我观察到了同样的问题,但尚未找到解决方案。
  • 您是否尝试过更改 js 文件中的某些内容以强制重新编译,也许它没有检测到 js 中的更改,因此它不会重新编译。这有时会奏效。我怀疑 webpack 也可能正在缓存东西,并且与 HotModuleReplacment 一起可能会有更多问题。不过不确定。
  • 是的,我试过了。 :-/ 似乎什么也没做。
  • 是的,它对我也没有可靠的工作。
  • 您找到可靠的解决方案了吗@postalservice14?

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


【解决方案1】:

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

一旦我将其更改为false,这是默认设置。问题消失了。希望对其他人有所帮助。

【讨论】:

    【解决方案2】:

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

    在我的情况下,解决方案是将babelRelayPlugin 移动为第一个在.babelrc 中执行的插件。

    我不太确定为什么。

    【讨论】:

    • 我把它放在第一位。但是我仍然观察到同样的问题。
    猜你喜欢
    • 2017-02-23
    • 2014-09-16
    • 2020-03-02
    • 2018-08-20
    • 2011-03-20
    • 2021-02-05
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    相关资源
    最近更新 更多