Graphql-tag / loader: сбой сборки модуля с GraphQLError: синтаксическая ошибка

Странная проблема, с которой я столкнулся. Использование Vue-CLI3 npm run serve.

Имеем следующую конфигурацию:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    // GraphQL Loader
    config.module
      .rule('graphql')
      .test(/\.graphql$/)
      .use('graphql-tag/loader')
      .loader('graphql-tag/loader')
      .end();
  }
};

и один файл .graphql:

mutation AddOfficeMutation(
    $name: String
    $location: String
  ) {
    createOffice(
      input: {office: { name: $name, location: $location }}
    ) {
      office {
        id
        name
        location
      }
    }
  }

при запуске npm run serve я получаю следующую ошибку:

ERROR  Failed to compile with 1 errors                                                                                                                                                           1:11:08 PM

 error  in ./src/graphql/AddOfficeMutation.graphql

Module build failed (from ./node_modules/graphql-tag/loader.js):
GraphQLError: Syntax Error: Unexpected Name "var"
    at syntaxError (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql/error/syntaxError.js:24:10)
    at unexpected (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql/language/parser.js:1490:33)
    at parseDefinition (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql/language/parser.js:153:9)
    at many (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql/language/parser.js:1520:16)
    at parseDocument (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql/language/parser.js:113:18)
    at parse (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql/language/parser.js:48:10)
    at parseDocument (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql-tag/src/index.js:129:16)
    at gql (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql-tag/src/index.js:170:10)
    at Object.module.exports (/Users/danroc/Dropbox/projects/tal-firebase/client-vue/node_modules/graphql-tag/loader.js:44:18)

 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AddOfficeForm.vue?vue&type=script&lang=js& 29:0-69 59:18-35
 @ ./src/components/AddOfficeForm.vue?vue&type=script&lang=js&
 @ ./src/components/AddOfficeForm.vue
 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/AddOfficeView.vue?vue&type=script&lang=js&
 @ ./src/views/AddOfficeView.vue?vue&type=script&lang=js&
 @ ./src/views/AddOfficeView.vue
 @ ./src/router/routes.js
 @ ./src/router/router-config.js
 @ ./src/main.js
 @ multi ./node_modules/@vue/cli-service/node_modules/webpack-dev-server/client?http://192.168.0.99:8080/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

С использованием:

  • "graphql": "^ 14.0.2"
  • "graphql-tag": "^ 2.10.0"

Я медленно предполагаю, что это может быть ошибка с моей конфигурацией Babel или Vue? Кто-нибудь может пролить свет на это?

Спасибо!

Вы используете vue-cli-plugin-apollo?

Andreas 04.11.2018 16:13

да, добавил с vue add apollo

Daniel da Rocha 04.11.2018 16:20

Я думаю, что плагин уже загружает graphql-tag / loader, и вы запускаете его дважды, имея собственное правило веб-пакета. Вы пробовали это без специального правила и, возможно, переименовали файл в .gql?

Andreas 04.11.2018 16:32

спасибо, я думаю, что все. Я воссоздал проект и не добавил правила в vue.config.js, и он работает нормально!

Daniel da Rocha 05.11.2018 20:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
4
1 972
1

Ответы 1

Я столкнулся с той же проблемой, и казалось, что 2 загрузчика приводят к сбою.

Я установил graphql-tag и webpack-graphql-loader.

Попробуйте удалить все пакеты, которые включают apollo или graphql, и снова установите их, используя vue cli. vue add apollo. У меня это сработало.

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