Выбор ответа Middle Сборщики обновлено

Что мешает tree shaking

Вопрос

Какой импорт хуже всего поддаётся tree shaking?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: const = require('lodash'); .debounce(fn, 300);. Tree shaking опирается на статическую структуру ES-модулей: из import { x } видно, что взяли. require это обычный вызов функции в рантайме, объект модуля может использоваться как угодно, поэтому сборщик оставляет его целиком. - Именованный…

Варианты ответа

  1. const _ = require('lodash'); _.debounce(fn, 300);правильный ответ
  2. import { debounce } from 'lodash-es';
  3. import debounce from 'lodash-es/debounce.js';
  4. import { debounce, throttle } from 'lodash-es'; debounce(fn);

Разбор

Tree shaking опирается на статическую структуру ES-модулей: из import { x } видно, что взяли. require это обычный вызов функции в рантайме, объект модуля может использоваться как угодно, поэтому сборщик оставляет его целиком.

  • Именованный импорт из ESM-пакета вырезается хорошо.
  • Импорт отдельного файла подтягивает только его.
  • Два именованных импорта тоже статичны, остальное будет удалено.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме