#angular #webpack #lodash
#angular #webpack #Lodash
Вопрос:
Я пытаюсь уменьшить размер пакета. Я запустил webpack-bundle-analyzer.
Например, в пакете lodash
я получаю следующую статистику:
- Размер статистики 527,2КБ
- Проанализированный размер 69,14 КБ
- Gzz 23.67кб
Я импортирую методы Lodash следующим образом:
import {uniq, get, flatten} from 'lodash';
Вопрос 1)
Мне не ясно, получаю ли я какие-либо преимущества от прямого импорта методов, например.:
import {uniq} from 'lodash/uniq';
В некоторых статьях о тестировании пишут, что это уменьшает размер пакета. Но, например, с Lodash это, похоже, также достигается с помощью плагина webpack. Как видно из приведенного выше примера, анализируемый размер составляет 10% от размера статистики. Так это уже сделано angular?
Вопрос 2)
Если 1) уменьшает размер пакета, есть ли лучший способ, чем разделить импорт на несколько строк, что, по-моему, довольно загромождает код.
import {uniq, get, flatten} from 'lodash';
=>
import {uniq, get, flatten} from 'lodash/uniq';
import {uniq, get, flatten} from 'lodash/get';
import {uniq, get, flatten} from 'lodash/flatten';
Вопрос 3)
Если я последую рекомендации прямого импорта, я просто получу сообщение об ошибке
error TS2305: Module '"./frontend/node_modules/@types/lodash/difference"' has no exported member 'difference'.
Нужно ли мне добавлять карту для Lodash (и, возможно, любого другого модуля, который я оптимизирую) в моем angular.json
?