проблемы с импортом на модульном сервере Apollo

#node.js #import #next.js #apollo-server #nodejs-server

#node.js #импорт #next.js #apollo-сервер #nodejs-сервер

Вопрос:

у меня есть полностью работающий модульный сервер apollo на NextJS (основанный на этой статьеhttps://www.apollographql.com/blog/modularizing-your-graphql-schema-code-d7f71d5ed5f2 / ) в основном я создаю массив моих typedefs и объединяю преобразователи, используя функцию merge из Lodash … пока все хорошо … это передает функцию makeExecutableSchema, и эта схема отправляется на сервер… и это отлично работает…

проблема в том, что я пытаюсь переместить сервер за пределы NextJS … и когда я пытаюсь создать новый проект и выполнить инициализацию yarn или npm init … установить зависимости и попытаться скопировать вставить все мои файлы схемы в новый проект npm init, ВЕСЬ мой импорт перепутан, и я начинаю получать все эти ошибки, такие как:

в NextJS у меня есть (это просто работает в NextJS):

 import { merge } from "lodash";
  

в проекте new node говорится, что слияние не удалось найти в Lodash…
или модуль является CommonJS и он не может выполнять именованный импорт…
или, если я выполняю импорт с помощью require, он говорит ReferenceError: require не определен, я думаю, это должно быть связано с тем, что node ожидает запустить это в браузере, но я понятия не имею, как указать, что это не будет запускаться в браузере, поскольку это просто js-файл, который предназначен для модульной схемы apollo…

я просто не понимаю, почему все предложения импорта отлично работают в Next, но когда я запускаю сервер apollo в обычном узле, каждый импорт выдает так много ошибок… я исправил некоторые, добавив расширение в конце импортируемого файла (то, что не было необходимо в NextJS) или добавив «/index» в конце импортируемого пакета…

Есть ли способ заставить импорт вести себя как в Next??? но в новом проекте NodeJS?

Любая помощь или ориентация были бы ВЫСОКО оценены

Ответ №1:

Ответ был:

Используйте Babel, устанавливайте с помощью NPM или YARN

 "@babel/core"
"@babel/node"
"@babel/preset-env"
  

добавьте файл .babelrc в корневой каталог проекта:

 {
  "presets": ["@babel/preset-env"]
}
  

для запуска основного файла используйте скрипт в package.json, подобный:

 "start": "nodemon --exec babel-node index.js"
  

и это позволит выполнять современный JavaScript 😀