Для чего используется пакет regenerator-runtime npm?

Я заметил это в кодовой базе моей компании, и у нее 30 миллионов загрузок в неделю, поэтому мне интересно узнать о ее важности.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
38
0
25 949
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

regenerator-runtime — это поддержка среды выполнения для скомпилированных/транспилированных async функций. (У него вполне могут быть и другие применения, но это преобладает.)

Когда вы используете такой компилятор, как Babel, который компилирует современный JavaScript в более ранний JavaScript (процесс, иногда называемый транспилированием), одна из вещей, которую вы можете сделать, — это скомпилировать async функции во что-то, что будет работать на движках JavaScript, которые не поддерживают async функции (такие как как все более неактуальный IE11). Babel выполняет преобразование синтаксиса, но полученный код зависит от поддержки среды выполнения от regenerator-runtime.

тогда почему он не включен в babel, раз он так важен?

ezio 19.04.2021 11:37

@ezio — Babel не контролирует, какие script файлы вы включили в свою страницу/приложение, это не его работа; его работа заключается в преобразовании кода из A в B. Но упаковщик (например, Webpack или Rollup и т. д.), настроенный для работы с Babel, автоматически включит поддержку во время выполнения, потому что это его работа.

T.J. Crowder 19.04.2021 11:44

@T.J.Crowder извините за мое невежество, новичок в экосистеме js, но что здесь означает поддержка среды выполнения?

ezio 19.04.2021 11:48

@ezio - Не нужно извиняться, здесь много движущихся частей. :-) Включение скрипта в среду выполнения. Babel переписывает код функции async в код, используя regenerator-runtime (в любом файле кода, где появляется функция async), но сама regenerator-runtime должна быть включена только один раз, а не для каждого файла. Таким образом, вы включаете его (если вам это нужно) в тег script на результирующей странице.

T.J. Crowder 19.04.2021 12:18

@ T.J.Crowder, в чем смысл включения этого руководства? Почему это не автоматизировано (установщиком)?

PEZO 27.08.2021 06:12

@PEZO - я думаю, что сборщики в целом делают это. Но Babel этого не делает, потому что это требует более широкого обзора вашей кодовой базы.

T.J. Crowder 27.08.2021 09:19

Другие вопросы по теме