Что делает бабель в реакции на родную? - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь выяснить процесс сборки для реагирования на натив и что именно так делают и metro bundler, и babel js. В частности, что позволяет мне использовать синтаксис ES5 +. Я нахожу некоторые источники, которые, кажется, говорят мне что-то другое. Этот источник сообщает:

Metro объединяет весь код javascript в один файл и переводит любой код Javascript, который устройство не понимает (например, JSX или какой-то более новый javascript). синтаксис)

Этот говорит:

React Native использует Babel для преобразования синтаксиса React и более нового синтаксиса ES5 + в код, который можно запустить в JavaScript среда, которая не поддерживает эти функции.

Так что теперь я запутался, что именно оба делают. Также я нашел это в приведенном выше источнике (и документации метро): Метро . Процесс преобразования описывается так:

Все модули go через трансформатор. Преобразователь отвечает за преобразование модуля в формат, понятный целевой платформе (например, React Native). Преобразование модулей происходит параллельно в зависимости от количества ядер, которые у вас есть.

Это звучит точно так же, как и то, что, как предполагается, Вавилон делает со мной, или это что-то другое? Судя по всему, я запутался в том, что часть разрешения процесса связывания работает и как точно она работает в parralel для других шагов, но, возможно, это топи c для другого вопроса.

1 Ответ

1 голос
/ 07 февраля 2020

Вавилон - транспортер. Какая?!? Что ж, транспортер - это инструмент, который читает исходный код, написанный на одном языке программирования, и создает эквивалентный код на другом языке. React Native использует Babel для преобразования синтаксиса React и более нового синтаксиса ES5 + в код, который можно запускать в среде JavaScript, которая не поддерживает эти функции.

Из коробки Бабель ничего не делает. Он в основном анализирует код и затем генерирует тот же код обратно. Чтобы представить некоторые маги c, вам нужно интегрировать плагины (или пресеты, набор плагинов), чтобы Babel мог что-либо делать.

Плагины и пресеты могут быть установлены как пакеты с использованием пряжи (или npm ) - менеджер пакетов для JavaScript - объявление их в файле с именем package. json. Пакеты доступны как зависимости или devDependencies. Разница зависит от их использования. Фактически, хотя первые требуются во время выполнения, последние требуются во время разработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...