Babel 插件反应中继
Posted
技术标签:
【中文标题】Babel 插件反应中继【英文标题】:Babel plugin react relay 【发布时间】:2017-08-18 17:16:02 【问题描述】:我正在尝试设置一个 graphql 项目。我已经在运行 GraphQL 服务器并尝试设置中继环境。我已按照此处https://github.com/graphcool/babel-plugin-react-relay 的说明进行操作,但是当我尝试运行我的项目时,出现以下错误:
Project@1.0.0 启动 /Users/JKB/Sites/Project nodemon --watch server --exec babel-node -- server/index.js
[nodemon] 1.11.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: /Users/JKB/Sites/project/server/**/*
[nodemon] starting `babel-node server/index.js`
/Users/JKB/Sites/project/node_modules/babel-plugin-react-relay/lib/index.js:27
throw error;
^
Error
at ClientRequest.<anonymous> (/Users/JKB/Sites/project/node_modules/node-fetch/index.js:133:11)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at TLSSocket.socketCloseListener (_http_client.js:285:9)
at emitOne (events.js:101:20)
at TLSSocket.emit (events.js:188:7)
at _handle.close (net.js:501:12)
at TCP.done [as _onclose] (_tls_wrap.js:325:7)
at module.exports.loopWhile (/Users/JKB/Sites/project/node_modules/deasync/index.js:72:22)
at exports.default (/Users/JKB/Sites/project/node_modules/babel-plugin-react-relay/lib/index.js:21:26)
[nodemon] app crashed - waiting for file changes before starting...
我有以下.babelrc
"presets": [ "es2015", "react" ],
"plugins": [ "react-html-attrs", "react-relay" ]
我已经导出了环境变量: 导出 GRAPHQL_ENDPOINT="http://localhost:3000/graphql"
以及以下软件包版本:
"babel-relay-plugin": "^0.10.0"
"babel-plugin-react-relay": "^0.10.0"
"react-relay": "^0.10.0"
当我尝试重新安装时,我收到以下警告 - 不确定它们是否相关..
Project@1.0.0 /Users/JKB/Sites/project
├── babel-plugin-react-relay@0.10.0
└── UNMET PEER DEPENDENCY babel-relay-plugin@0.11.0 invalid
npm WARN react-relay@0.10.0 requires a peer of babel-relay-plugin@0.10.0 but none was installed.
npm WARN Project@1.0.0 No repository field.
➜ project git:(master) ✗ npm install -D babel-relay-plugin
Project@1.0.0 /Users/JKB/Sites/project
└── UNMET PEER DEPENDENCY babel-relay-plugin@0.11.0
npm WARN react-relay@0.10.0 requires a peer of babel-relay-plugin@0.10.0 but none was installed.
npm WARN Picso@1.0.0 No repository field.
npm ERR! code 1
【问题讨论】:
【参考方案1】:您不需要babel-plugin-react-relay
来设置 GraphQL 服务器。此插件由客户端使用,而不是服务器。
您可以在没有此插件的情况下运行 GraphQL 服务器。但是,要使用中继客户端使用该服务器,您需要配置插件 - 仅在客户端中。
在此存储库中查看 Relay 客户端应用程序的 GraphQL 服务器的完整示例:https://github.com/danielfeelfine/graphql-relay-server。您需要this script 为Babel Relay Plugin 生成带有模式自省的 JSON。
最后,这里是 Relay 客户端应用程序(使用 React Native)的示例,使用 GraphQL 服务器,在此存储库中:https://github.com/danielfeelfine/react-native-relay。 .babelrc 包含您需要使用的 babel-relay-plugin
的配置。
【讨论】:
对不起,应该说清楚了。我已经在 localhost 端口 3000 上运行了 GraphQL 服务器。我正在尝试设置中继环境,这就是我得到的错误。 你有没有尝试过不使用babel-relay-react-plugin
而只使用上面的例子babel-relay-plugin
?以上是关于Babel 插件反应中继的主要内容,如果未能解决你的问题,请参考以下文章