如何在TypeScript中使用Relay Modern(babel-plugin-relay和relay-compiler)?

时间:2017-05-16 14:21:34

标签: javascript typescript babeljs relayjs relay

使用TypeScript时,babel-plugin-relay和relay-compiler不会解析我们的graphql调用。我们的TS生成的JS文件看起来像这样,针对ES2015:

var mutation = compat_1.graphql(_templateObject2);

我们来自relay-compiler的输出看起来像这样,表明没有文件被解析:

Parsed default in 0.05s Writing default Writer time: 0.05s [0.05s compiling, 0.00s generating, 0.00s extra] Unchanged: 0 files Written default in 0.07s

我们怎样才能让relay-compiler和babel-plugin-relay在这些文件上正常运行?

1 个答案:

答案 0 :(得分:0)

插件和编译器都需要裸的graphql调用才能正常工作。如果graphql调用接受一个对象(如上所述取_templateObject2)或在另一个对象上调用(因为它在上面的compat_1上调用),则两个工具都不起作用。

要修复,我们只是使用旧式require语句,以便TS转换器输出纯graphql次调用:

const { commitMutation, graphql } = require('react-relay/compat');

完美无缺。