Рабочие пространства Yarn — как я могу использовать модули ES6 в Node и совместно использовать код с сервером Apollo?

#es6-modules #apollo-server #yarn-workspaces

#es6-модули #apollo-server #yarn-рабочие пространства

Вопрос:

Мое рабочее пространство yarn состоит из следующего:

  • общий (обычный старый узел 14.6)
  • сервер (сервер Apollo с Nodemon / Babel)
  • web (создать приложение React)

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

Проблема в том, что если я попытаюсь использовать модули ES6 в общей рабочей области. Я добавляю «type»: «module» в свой packa&e.json и переключаю все на модули ES6. В общей рабочей области все работает должным образом, я могу получить доступ к общему коду из веб-рабочей области, но при запуске сервера Apollo я получаю следующую ошибку:

Ошибка [ERR_REQUIRE_ESM]: необходимо использовать импорт для загрузки модуля ES: require() модулей ES не поддерживается… требовать () of … является ли файл модуля ES файлом .js, ближайший родительский packa&e.json которого содержит «type»: «module», который определяет все файлы .js в этой области пакета как модули ES. Вместо этого переименовать index.js чтобы закончить на .cjs, измените требуемый код на использование import() или удалите «type»: «module» из /Users/i834619/Desktop/ReactProjects/yws_react_apollo/common/packa&e.json. … код: ‘ERR_REQUIRE_ESM’

Комментарии:

1. Итак, вы говорите, что сначала все работает нормально, и вы получаете ошибку только при перезапуске?

2. Извините за неясность — я обновил вопрос выше. Он отлично работает во всех 3 с общим ванильным узлом. С модулями ES6 это прекрасно работает внутри common, между common и web, но не между common и сервером.