Использование next.js с рабочими пространствами пряжи - PullRequest
0 голосов
/ 02 июля 2018

Сложилась сегодня сложность с такой структурой проекта

packages
  /app
    pages/
    package.json
  /ui-kit
    pages/
    package.json
  /shared
.babelrc
package.json

root lvl package json определяет workspaces: [packages/*], где app и ui-kit оба являются приложениями nextjs.

У меня есть следующий скрипт в root lvl package.json

"dev:app": "next packages/app",
"dev:ui-kit": "next packages/ui-kit"

оба они работали нормально, пока я не представил папку shared, которая по существу содержит некоторые функции / компоненты и т. Д., Которые повторно используются между пакетами. Как только я включаю его в app или ui-kit, я получаю ошибку, подобную этой

in ./packages/shared/index.js

Ошибка синтаксического анализа модуля: неожиданный токен (4:21) соответствующий загрузчик для обработки этого типа файла. | Импортировать React из «реагировать» | | export default () => Здравствуйте, поделился! |

Похоже, что nextjs не применяет никаких загрузчиков ни к чему, кроме папки, на которую было указано. Есть ли решение как-то это исправить? то есть начинать дальше из корневой папки, но указывать на разные входные файлы, как-то основанные на разных командах скрипта?

1 Ответ

0 голосов
/ 18 апреля 2019

Проблема в том, что Babel не передает код вне следующей папки. Это связано с тем, что файл .babelrc не учитывается, даже если он находится в корне вашего кода.

Однако, если вы вместо этого используете файл babel.config.js (как рекомендуется начиная с версии 7 Babel) и помещаете его в корень своего кода (фактически заменяя файл .babelrc), вы можете использовать этот плагин:

https://github.com/josephluck/next-plugin-custom-babel-config

Я сделал это, и это прекрасно работает!

...