尝试从反应应用程序连接到 graphcool 中继 API 时出现此错误:模块构建失败:错误:没有有效的 GraphQL 端点
Posted
技术标签:
【中文标题】尝试从反应应用程序连接到 graphcool 中继 API 时出现此错误:模块构建失败:错误:没有有效的 GraphQL 端点【英文标题】:I get this error when trying to connect to a graphcool relay API from a react app: Module build failed: Error: No valid GraphQL endpoint 【发布时间】:2018-05-24 10:30:18 【问题描述】:我正在学习 Lynda.com 的教程“部署全栈反应应用程序”。我正在使用'create-react-app 项目来搭建我的项目。由于某种未知原因,我的应用程序无法访问 api,我可以直接访问该 api,而浏览器上没有任何问题。这是我的 package.json 文件,每当我运行“yarn start”时都会收到错误消息。
"name": "tictacturing",
"version": "0.1.0",
"private": true,
"dependencies":
"autoprefixer": "7.1.6",
"babel-core": "6.26.0",
"babel-eslint": "7.2.3",
"babel-jest": "20.0.3",
"babel-loader": "7.1.2",
"babel-preset-react-app": "^3.1.0",
"babel-runtime": "6.26.0",
"case-sensitive-paths-webpack-plugin": "2.1.1",
"chalk": "1.1.3",
"css-loader": "0.28.7",
"dotenv": "4.0.0",
"eslint": "4.10.0",
"eslint-config-react-app": "^2.0.1",
"eslint-loader": "1.9.0",
"eslint-plugin-flowtype": "2.39.1",
"eslint-plugin-import": "2.8.0",
"eslint-plugin-jsx-a11y": "5.1.1",
"eslint-plugin-react": "7.4.0",
"extract-text-webpack-plugin": "3.0.2",
"file-loader": "1.1.5",
"fs-extra": "3.0.1",
"html-webpack-plugin": "2.29.0",
"jest": "20.0.4",
"object-assign": "4.1.1",
"postcss-flexbugs-fixes": "3.2.0",
"postcss-loader": "2.0.8",
"promise": "8.0.1",
"raf": "3.4.0",
"react": "^16.2.0",
"react-dev-utils": "^4.2.1",
"react-dom": "^16.2.0",
"react-relay": "^1.4.1",
"relay-runtime": "^1.4.1",
"style-loader": "0.19.0",
"sw-precache-webpack-plugin": "0.11.4",
"url-loader": "0.6.2",
"webpack": "3.8.1",
"webpack-dev-server": "2.9.4",
"webpack-manifest-plugin": "1.3.2",
"whatwg-fetch": "2.0.3"
,
"scripts":
"start": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf && node scripts/start.js",
"build": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf && node scripts/build.js",
"test": "node scripts/test.js --env=jsdom"
,
"jest":
"collectCoverageFrom": [
"src/**/*.js,jsx,mjs"
],
"setupFiles": [
"<rootDir>/config/polyfills.js"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.js,jsx,mjs",
"<rootDir>/src/**/?(*.)(spec|test).js,jsx,mjs"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform":
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
,
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
],
"moduleNameMapper":
"^react-native$": "react-native-web"
,
"moduleFileExtensions": [
"web.js",
"mjs",
"js",
"json",
"web.jsx",
"jsx",
"node"
]
,
"babel":
"plugins": [
"react-relay"
],
"presets": [
"react-app"
]
,
"eslintConfig":
"extends": "react-app"
,
"devDependencies":
"babel-plugin-react-relay": "^0.10.0",
"eslint": "^4.10.0",
"eslint-plugin-react": "^7.4.0"
【问题讨论】:
【参考方案1】:更新这两行:
"start": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf && node scripts/start.js",
"build": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf && node scripts/build.js",
这两行:
"start": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf&&node scripts/start.js",
"build": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf&&node scripts/build.js",
&&
之间和周围不应有空格。如果这解决了您的问题,请将其标记为正确答案
【讨论】:
哇!很棒的答案.. 我从没想过要删除脚本中 && 上的空格。谢谢卡兰!【参考方案2】:您最初是如何创建服务的?
看起来您可能只在本地创建了它。
https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf
确实不是有效的 GraphQL 端点,它不存在。
编辑:
更新这两行
"start": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf && node scripts/start.js",
"build": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjazdk3jg0yj70197193cltrf && node scripts/build.js",
到
"start": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjb223en111od0191dzu1vba4 && node scripts/start.js",
"build": "set GRAPHQL_ENDPOINT=https://api.graph.cool/relay/v1/cjb223en111od0191dzu1vba4 && node scripts/build.js",
当您删除项目cjazdk3jg0yj70197193cltrf
时,端点也被删除。
【讨论】:
我在 console.graph.cool 上创建了项目。这是新端点“api.graph.cool/relay/v1/cjb223en111od0191dzu1vba4”。我在解决问题时取下了旧的。该服务是在 graph.cool 上创建的 您好 marktani,端点已更新。但问题仍然存在。问题是为什么当端点明确存在并且可以访问时我会收到此错误。 请分享更多关于您的项目设置的信息,它看起来像是您的一个文件中的配置错误:)以上是关于尝试从反应应用程序连接到 graphcool 中继 API 时出现此错误:模块构建失败:错误:没有有效的 GraphQL 端点的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Gatsby 混合站点连接到 Apollo/Graphcool(或 Redux)?
使用 O365 帐户连接到 Azure VM 中的 SMTP 中继失败