英文:
Node modules broken When using Vite + React + Apollo Client
问题
我尝试使用@apollo/client
,参考这个起始 Apollo 客户端文档,但想要在 CRA(Create React App)之外使用 Vite。我在 main.jsx
中导入了模块,如下所示:
import {
ApolloClient,
InMemoryCache,
ApolloProvider,
gql,
} from "@apollo/client/core";
const client = new ApolloClient({
uri: "https://flyby-router-demo.herokuapp.com/",
cache: new InMemoryCache(),
});
// ...
ReactDOM.createRoot(document.getElementById("root")).render(
<ApolloProvider client={client}>
<React.StrictMode>
<App />
</React.StrictMode>
</ApolloProvider>
);
然后我的应用程序报错并显示以下消息:
Uncaught SyntaxError: missing ) in parenthetical chunk-NWQ2EI35.js:1493:112
在 "chunk-NWQ2EI35.js:1493:112" 中,我可以看到以下 JavaScript 代码:
// node_modules/graphql/jsutils/instanceOf.mjs
var _globalThis$process;
var instanceOf = (
/* c8 ignore next 6 */
// FIXME: https://github.com/graphql/graphql-js/issues/2317
// !!! 这是第1493行 !!!
((_globalThis$process = globalThis.process) === null || _globalThis$process === void 0 ? void 0 : _globalThis$"development") === "production" ? function instanceOf2(value, constructor) {
// ...
源自 node_modules/graphql/jsutils/instanceOf.js
的代码如下:
const instanceOf =
/* c8 ignore next 6 */
// FIXME: https://github.com/graphql/graphql-js/issues/2317
((_globalThis$process = globalThis.process) === null ||
_globalThis$process === void 0
? void 0
: _globalThis$process.env.NODE_ENV) === 'production'
? function instanceOf(value, constructor) {
return value instanceof constructor;
}
: function instanceOf(value, constructor) {
if (value instanceof constructor) {
return true;
}
// ...
看起来 _globalThis$process.env.NODE_ENV
已更改为 _globalThis$"development"
,这导致了问题。
根据您的经验,我不知道如何在 Vite 环境中使用 Apollo 客户端。需要一些帮助。
英文:
I tried @apollo/client
with this starting apollo client document but wanted to use Vite instead of CRA. I imported the modules in main.jsx
like this:
import {
ApolloClient,
InMemoryCache,
ApolloProvider,
gql,
} from "@apollo/client/core";
const client = new ApolloClient({
uri: "https://flyby-router-demo.herokuapp.com/",
cache: new InMemoryCache(),
});
// ...
ReactDOM.createRoot(document.getElementById("root")).render(
<ApolloProvider client={client}>
<React.StrictMode>
<App />
</React.StrictMode>
</ApolloProvider>
);
and then my app crushed with this message
Uncaught SyntaxError: missing ) in parenthetical chunk-NWQ2EI35.js:1493:112
In "chunk-NWQ2EI35.js:1493:112" I could see this js code.
// node_modules/graphql/jsutils/instanceOf.mjs
var _globalThis$process;
var instanceOf = (
/* c8 ignore next 6 */
// FIXME: https://github.com/graphql/graphql-js/issues/2317
// !!! THIS is the line #1493 !!!
((_globalThis$process = globalThis.process) === null || _globalThis$process === void 0 ? void 0 : _globalThis$"development") === "production" ? function instanceOf2(value, constructor) {
// ...
Source from node_modules/graphql/jsutils/instanceOf.js
:
const instanceOf =
/* c8 ignore next 6 */
// FIXME: https://github.com/graphql/graphql-js/issues/2317
((_globalThis$process = globalThis.process) === null ||
_globalThis$process === void 0
? void 0
: _globalThis$process.env.NODE_ENV) === 'production'
? function instanceOf(value, constructor) {
return value instanceof constructor;
}
: function instanceOf(value, constructor) {
if (value instanceof constructor) {
return true;
}
// ...
Seems _globalThis$process.env.NODE_ENV
changed to _globalThis$"development"
, and this caused the problem.
I have no idea how to use apollo client with vite environment. Needed some helps based on your experiences.
答案1
得分: 3
这是由昨天的graphql
版本更新引起的。正在进行新的发布以修复此问题,与此同时,您可以将graphql
降级到16.6.0
。
编辑:现在应该已经通过16.7.1修复了此问题。
英文:
This is caused by a graphql
version update from yesterday. A new release to fix this is in the works, meanwhile you can downgrade graphql
to 16.6.0
.
Edit: this should be fixed with 16.7.1 now.
答案2
得分: 3
在我的项目中出现了相同的问题(Nuxt 3,Cloudflare Pages 预设),即使使用 graphql
版本 16.7.1
也是如此。
不需要降级,它已在 17.0.0-alpha.2
中修复。
将以下内容添加到您的 package.json
:
"overrides": {
"graphql": "^17.0.0-alpha.2"
}
英文:
The same issue appeared in my project (Nuxt 3, Cloudflare Pages preset), even with graphql
version 16.7.1
.
Not need to downgrade, it is fixed in 17.0.0-alpha.2
.
Add this to your package.json
:
"overrides": {
"graphql": "^17.0.0-alpha.2"
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论