.babelrc взлом семантического интерфейса и следующего приложения - PullRequest
0 голосов
/ 06 мая 2018

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

{
  "presets": [
    "es2015",
    "next/babel"
  ]
}

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

Это то, что я пробежал: cd semantic && gulp build

Это привело к тому, что мое приложение перестало работать, когда присутствует .babelrc.

Это мои package.json скрипты:

  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start",
    "semantic": "cd semantic && gulp build",
    "test": "mocha --require babel-core/register --watch-extensions js **/*.test.js"
  },

Если я пытаюсь запустить сценарии, связанные с next, я получаю следующую ошибку:

Ошибка: файлы плагинов / предустановок не позволяют экспортировать объекты, только функции. В /Users/theJuls/Workspace/cbt/client/node_modules/babel-preset-es2015/lib/index.js

Если я пытаюсь запустить свои юнит-тесты, я получаю

Ошибка: плагин 0, указанный в «/Users/theJuls/Workspace/cbt/client/node_modules/next/babel.js», предоставил недопустимое свойство «default» (при обработке пресета: «/ Users / theJuls / Workspace / ТОС / клиент / node_modules / следующий / babel.js ")

Если я удалю .babelrc, все сценарии next будут работать нормально, однако я полностью потерял свои модульные тесты. Почему это происходит? Что я могу сделать, чтобы это исправить?

Я не уверен, что это уместно, но вот моя текущая файловая структура:

api/
components/
config/
lib/
pages/
semantic/
store/
.babelrc
package-lock.json
package.json
semantic.json

1 Ответ

0 голосов
/ 19 мая 2018

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

Сначала я должен был установить следующие модули: @babel/core и @babel/register

Изменен файл .babelrc следующим образом:

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

Наконец, в package.json просто слегка измените команду test на:

"test": "mocha --require @ babel / register --watch-extensions js ** / *. Test.js"

Так как мы сейчас используем @babel/register

Это заставило все прийти в норму.

...