无法从“node_modules/graphql/validation/index.js”解析“./rules/FieldsOnCorrectType”。

9 浏览
0 Comments

无法从“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文件中的导入会出现错误...我不理解为什么。

0
0 Comments

原因:问题出现的原因是由于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

以上就是解决这个问题的方法,希望对你有帮助。如果将来链接失效,请在回答中包含这些步骤,以确保回答在无效链接的情况下仍然有价值。

0