Что такое fesm2015 и какое отношение он имеет к esm2015?

Я знаю, что esm2015 относится к модулям ecmascript, описанным в спецификации ecmascript 2015 (раздел модулей)

В некоторых библиотеках под node_modules/ я вижу рядом с каталогом esm2015/ еще один, который называется fesm2015/.

  • Что такое фем2015?
  • Расширяет ли это esm2015?
  • Есть ли спецификация, описывающая это?

Например, docs.google.com/document/d/… это сглаженный (т.е. в один файл) модуль ES (т.е. с использованием синтаксиса импорта/экспорта).

jonrsharpe 24.12.2020 10:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
13
1
7 019
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это часть формата пакета Angular.

FESM — сокращение от Flattened ES Modules, состоит из формата файла создан путем сведения всех модулей ES, доступных из точки входа в единый модуль ES.

Спецификация, по-видимому, находится в этом документе Google:

https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs

Больше информации:

Мы настоятельно рекомендуем оптимизировать артефакты сборки перед публикация ваших артефактов сборки в npm путем выравнивания модулей ES. Это значительно сокращает время сборки приложений Angular, поскольку а также время загрузки и анализа окончательного пакета приложений. Пожалуйста, ознакомьтесь с отличным постом "Стоимость малых модулей" от Нолан Лоусон.

Компилятор Angular поддерживает создание индексных файлов модулей ES, которые затем можно использовать для выравнивания модуля с помощью таких инструментов, как Rollup, в результате формат файла мы называем Flattened ES Module или FESM.

FESM — это формат файла, созданный путем сведения всех доступных модулей ES. из точки входа в единый модуль ES. Он формируется путем следования весь импорт из пакета и копирование этого кода в один файл при сохранении всего общедоступного экспорта ES и удалении всех частных импорт.

Сокращенное название «ФЭСМ» (произносится как «фесом») может иметь номер после него, например, «FESM5» или «FESM2015». Номер относится к уровень языка JavaScript внутри модуля. Итак, файл FESM5 будет ESM+ES5 (операторы импорта/экспорта и исходный код ES5).

Чтобы создать сглаженный индексный файл модуля ES, используйте следующий параметры конфигурации в файле tsconfig.json:

{   "compilerOptions": {
     ...
     "module": "es2015",
     "target": "es2015",
     ...   },   "angularCompilerOptions": {
     ...
     "flatModuleOutFile": "my-ui-lib.js",
     "flatModuleId": "my-ui-lib"   } }

Как только индексный файл (например, my-ui-lib.js) сгенерирован ngc, упаковщики и оптимизаторы, такие как Rollup, могут использоваться для создания сглаженного ESM. файл.

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