Relay的Graphql架构以某种方式通过webpack缓存(?)

时间:2016-10-24 08:16:10

标签: webpack relay

所以问题很简单。我正在使用webpack和relay,当我通过命令bundle更新我的架构时会重建,但是当我尝试查询更新的字段时,我收到了错误:

  

文件Cannot query field "X" on type "Y".中的GraphQL验证错误Z。如果最近添加了参数/字段/类型,请尝试更新GraphQL架构。

但架构已更新,我可以看到此字段。所以我可以以某种方式清除缓存以防止这种情况。只是重建捆绑没有帮助。

3 个答案:

答案 0 :(得分:1)

伙计们我最近遇到了同样的问题。问题是babel-loader插件正在进行某种类型的缓存。将cacheDirectory选项设置为false会为我修复它。这是修复后jsx的webpack模块规则:

{
    test: /\.jsx?$/,
    use: {
      loader: 'babel-loader',
      options: {
        babelrc: false,
        cacheDirectory: false,
        plugins: [path.join(__dirname, 'loaders/babelRelayPlugin')],
        presets: ['es2015', 'stage-0', 'react']
      }
    },
  },

答案 1 :(得分:0)

我遇到了持久调用堆栈错误,引用文件中不存在的行 - 即使从项目中删除文件后也是如此。 webpack构建成功(使用选项--cache false运行),但错误显示为来自所有浏览器开发控制台中的webpack输出文件。我尝试在每次构建之前删除该文件,以确保它使用新生成的版本来加载应用程序,但错误不会清除。我终于不得不从头开始在主机上创建一个全新的项目目录,重新安装所有节点包和应用程序 - 此时它加载得很好,所以显然某些东西缓存在输出文件以外的其他地方......

答案 2 :(得分:0)

我发现在我的情况下,文件夹.happypack的内容就是这种行为的原因。所以rm -rf .happypack/*解决了问题。