无法从“node_modules/graphql/validation/index.js”解析“./rules/FieldsOnCorrectType”。
无法从“node_modules/graphql/validation/index.js”解析“./rules/FieldsOnCorrectType”。
我正在使用Apollo Client 3构建一个React Native应用程序,并在生成JavaScript包时一直出现以下错误。\n
构建JavaScript包失败。 无法解析“node_modules/graphql/validation/index.js”中的“./rules/FieldsOnCorrectType”
\n我的代码非常简单,这是App.tsx
:\n
import { StatusBar } from 'expo-status-bar'; import React from 'react'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import useCachedResources from './hooks/useCachedResources'; import useColorScheme from './hooks/useColorScheme'; import Navigation from './navigation'; import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client'; const client = new ApolloClient({ uri: 'localhost:4000/graphql', cache: new InMemoryCache() }); export default function App() { const isLoadingComplete = useCachedResources(); const colorScheme = useColorScheme(); if (!isLoadingComplete) { return null; } else { return (); } }
\n我已经追踪到问题出在实例化新的ApolloClient对象上-注释掉这些行(和提供者)会导致错误消失。\n将node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js
重命名为node_modules/graphql/validation/rules/FieldsOnCorrectType.js
(删除文件名的Rule
后缀)可以修复这个特定的错误,但接下来的validation/index.js
文件中的导入会出现错误...我不理解为什么。
原因:问题出现的原因是由于React Native的缓存问题导致的。
解决方法:按照以下步骤清除缓存即可解决问题。
如果你使用的是React Native CLI,可以执行以下命令(并非所有命令都是必需的):
watchman watch-del-all rm -rf /tmp/metro-cache rm -rf node_modules npm cache clean --force npm install npm start -- --reset-cache
如果你使用的是Expo CLI,则可以执行以下命令:
expo start -c
以上就是解决这个问题的方法,希望对你有帮助。如果将来链接失效,请在回答中包含这些步骤,以确保回答在无效链接的情况下仍然有价值。