Expo Web не удалось скомпилировать «необязательную цепочку» - PullRequest
5 голосов
/ 09 апреля 2020

Похоже, что Expo Webpack не необязательное сцепление .

Я обнаружил это, когда пытался установить UI Kitten в приложение Expo Web.

Это ошибка компиляции после того, как я добавил UI Kitten во вновь созданное приложение Expo

node_modules/@ui-kitten/components/ui/input/input.component.js 104:38
Module parse failed: Unexpected token (104:38)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|         this.webEventResponder = devsupport_1.WebEventResponder.create(this);
|         this.focus = () => {
>             this.textInputRef.current?.focus();
|         };
|         this.blur = () => {

Версии Deps (последние на момент написания здесь).

  • expo@37.0.6
  • @ui-kitten/components@5.0.0-alpha.1

Какие-нибудь советы, чтобы взломать это?

Ответы [ 2 ]

3 голосов
/ 09 апреля 2020

Webpack использует парсер Acorn, а Acorn не поддерживает опциональную цепочку на данный момент .

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

Итак, ваши варианты обхода проблемы:

  • не использовать webpack
  • не использовать опциональную цепочку
  • интегрировать Babel в свой стек, и убедитесь, что сначала пропустите все *. js -файлы через Babel, используя этот плагин Babel
  • , ожидайте объединения вышеупомянутого PR и следующей версии, включая эту PR будет выпущен
  • Разветвите Acorn, объедините PR самостоятельно, затем разветвите веб-пакет и заставьте его использовать свой раздвоенный Acorn
1 голос
/ 10 апреля 2020

Как говорит @connexo, обходной путь заключается в интеграции плагина babel. Также эта проблема уже обсуждалась на github .

...