无法解析 Apollo Client 版本 3 的模块
Unable to resolve module for Apollo Client version 3
我刚刚升级到 apollo/client
版本 3
我删除了所有其他 apollo 依赖项,如 apollo hooks
等,我正在从 apollo/client
本身导入所有内容。
我的 App.js
文件在我的 react native
项目中如下所示
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {ApolloProvider} from 'apollo/client';
import TodoStack from './src/components/TodoStack';
import client from './src/client/ApolloClient';
export default () => {
return (
<ApolloProvider client={client}>
<NavigationContainer>
<TodoStack />
</NavigationContainer>
</ApolloProvider>
);
};
但是当我 运行 我的应用程序时,我收到一条错误消息
我也尝试删除以下步骤
watchman watch-del-all
rm -rf node_modules and run yarn install
yarn start --reset-cache
rm -rf /tmp/metro-*
您需要从“@apollo/client”导入 ApolloProvider 而不是 'apollo/client'。
这里的@很重要。
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {ApolloProvider} from '@apollo/client';
import TodoStack from './src/components/TodoStack';
import client from './src/client/ApolloClient';
export default () => {
return (
<ApolloProvider client={client}>
<NavigationContainer>
<TodoStack />
</NavigationContainer>
</ApolloProvider>
);
};
抱歉跑题了,但我在正确 @apollo/client
时遇到了类似的错误。
While trying to resolve module `@apollo/client/link/ws` from file `/media/nvme/pro/virtual_coach/coach-expo/plugins/graphqlClient.ts`, the packag
e `/media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/package.json` was successfully found. However, this package itsel
f specifies a `main` module field that could not be resolved (`/media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/ws.cj
s`. Indeed, none of these files exist:
* /media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/ws.cjs(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|
.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json)
* /media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/ws.cjs/index(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx
|.tsx|.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json)
我为其他有此奇怪错误消息的人发布解决方案。
我从 /node_modules/@apollo/client/link/ws/package.json
比较了 corect package.json
{
"name": "@apollo/client/link/ws",
"main": "ws.cjs.js",
"module": "index.js",
"types": "index.d.ts",
"sideEffects": false
}
package.json
抛出错误
{
"name": "@apollo/client/link/ws",
"type": "module",
"main": "ws.cjs",
"module": "index.js",
"types": "index.d.ts",
"sideEffects": false
}
在错误消息中有一长串可能的扩展名。但没有 .cjs
。在我可以看到错误的项目中,包目录
中有文件
index.d.ts index.d.ts.map index.js index.js.map package.json ws.cjs ws.cjs.map
但在正确的项目中还有 wc.cjs.js
。
所以可能在新的包版本中构建 js 文件被删除了,因为没有 package.json 帽子 type
: module
.
最后我将 @apollo/client
的版本从
降级到 package.json
"@apollo/client": "^3.4.8",
固定:
"@apollo/client": "3.4.8",
我刚刚升级到 apollo/client
版本 3
我删除了所有其他 apollo 依赖项,如 apollo hooks
等,我正在从 apollo/client
本身导入所有内容。
我的 App.js
文件在我的 react native
项目中如下所示
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {ApolloProvider} from 'apollo/client';
import TodoStack from './src/components/TodoStack';
import client from './src/client/ApolloClient';
export default () => {
return (
<ApolloProvider client={client}>
<NavigationContainer>
<TodoStack />
</NavigationContainer>
</ApolloProvider>
);
};
但是当我 运行 我的应用程序时,我收到一条错误消息
我也尝试删除以下步骤
watchman watch-del-all
rm -rf node_modules and run yarn install
yarn start --reset-cache
rm -rf /tmp/metro-*
您需要从“@apollo/client”导入 ApolloProvider 而不是 'apollo/client'。
这里的@很重要。
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {ApolloProvider} from '@apollo/client';
import TodoStack from './src/components/TodoStack';
import client from './src/client/ApolloClient';
export default () => {
return (
<ApolloProvider client={client}>
<NavigationContainer>
<TodoStack />
</NavigationContainer>
</ApolloProvider>
);
};
抱歉跑题了,但我在正确 @apollo/client
时遇到了类似的错误。
While trying to resolve module `@apollo/client/link/ws` from file `/media/nvme/pro/virtual_coach/coach-expo/plugins/graphqlClient.ts`, the packag
e `/media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/package.json` was successfully found. However, this package itsel
f specifies a `main` module field that could not be resolved (`/media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/ws.cj
s`. Indeed, none of these files exist:
* /media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/ws.cjs(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|
.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json)
* /media/nvme/pro/virtual_coach/coach-expo/node_modules/@apollo/client/link/ws/ws.cjs/index(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx
|.tsx|.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json)
我为其他有此奇怪错误消息的人发布解决方案。
我从 /node_modules/@apollo/client/link/ws/package.json
{
"name": "@apollo/client/link/ws",
"main": "ws.cjs.js",
"module": "index.js",
"types": "index.d.ts",
"sideEffects": false
}
package.json
抛出错误
{
"name": "@apollo/client/link/ws",
"type": "module",
"main": "ws.cjs",
"module": "index.js",
"types": "index.d.ts",
"sideEffects": false
}
在错误消息中有一长串可能的扩展名。但没有 .cjs
。在我可以看到错误的项目中,包目录
index.d.ts index.d.ts.map index.js index.js.map package.json ws.cjs ws.cjs.map
但在正确的项目中还有 wc.cjs.js
。
所以可能在新的包版本中构建 js 文件被删除了,因为没有 package.json 帽子 type
: module
.
最后我将 @apollo/client
的版本从
package.json
"@apollo/client": "^3.4.8",
固定:
"@apollo/client": "3.4.8",