Очистите кеш приложения Create React при импорте файлов graphql

Я использую create-react-app и react-app-rewired для настройки своей конфигурации. Вот мой config-overrides.js:

const { override, fixBabelImports, addLessLoader } = require('customize-cra')
const rewireInlineImportGraphqlAst = require('react-app-rewire-inline-import-graphql-ast')

module.exports = override(
  rewireInlineImportGraphqlAst,
  fixBabelImports('antd', {
    libraryDirectory: 'es',
    style: true
  }),
  fixBabelImports('ant-design-pro', {
    libraryDirectory: 'lib',
    style: true,
    camel2DashComponentName: false
  }),
  fixBabelImports('lodash', {
    libraryDirectory: '',
    camel2DashComponentName: false
  }),
  addLessLoader({
    javascriptEnabled: true,
    modifyVars: {
      '@primary-color': '#308AC9',
      '@font-size-lg': '15px',
      '@menu-inline-toplevel-item-height': '34px',
      '@menu-item-height': '34px'
    }
  })
)

react-app-rewire-inline-import-graphql-ast используется для анализа файлов graphql во время сборки, поэтому я могу импортировать AST graphql, как это, с помощью Apollo:

import React from 'react'
import editUserMutation from '../graphql/editUser.graphql'

const Editor = () => (
  <Mutation mutation = {editUserMutation}>
    {mutate => ...}
  </Mutation>
)

Вот мой файл graphql:

mutation($email: String!, $password: String!, $name: String!, $job: String!, $website: String!, $bio: String!, $avatar: String) {
  editUser(email: $email, password: $password, name: $name, job: $job, website: $website, bio: $bio, avatar: $avatar) {
    id
  }
}

Теперь вот проблема: сначала я сделал ошибку в своем файле graphql, написав _id вместо id, поэтому GraphQL справедливо жаловался

Cannot query field "_id" on type "User"

Но потом после исправления GraphQL все равно жалуется на _id. Зарегистрировав свой импортированный editUserMutation AST, я обнаружил, что старая версия с ошибками все еще каким-то образом кэшировался и использовался.

Я пробовал много вещей: - Перезапуск yarn start всего проекта - Переименовать, а затем переименовать обратно мой файл graphql - Очистить кеш браузера

Ничего не помогает.

В чем здесь проблема? Спасибо.

РЕДАКТИРОВАТЬ: я избавился от проблемы, удалив папку node_modules и переустановив свои зависимости. Так что в этой папке может быть какой-то очень постоянный кеш, кто-нибудь знает, где?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
138
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из документации по базовому плагин:

Each time you modify a GraphQL file, the node_modules/.cache/babel-loader folder must be cleared for the changes to take effect. I recommend prepending the relevant script in your package.json and rerunning the script when you change a GraphQL file:

    {
      "scripts": {
        "start": "rm -rf ./node_modules/.cache/babel-loader && node index.js"
      }
    }

Что ж, я смотрел везде, кроме этого... Большое спасибо.

ostrebler 21.04.2019 20:18

Другие вопросы по теме