Реагирует ли изменение размера сборки из-за именованного импорта и импорта по умолчанию - PullRequest
0 голосов
/ 15 марта 2019

Я новичок в разработке React и использую именованные и импорт по умолчанию. Мне нужно знать, импортирует ли экспорт по умолчанию и использует его именованные экспорты, ссылаясь на него, например,

import * as R from 'ramda';
...
R.map(...),
R.propEq(..,..),
R.equals(..,..),
R.pipe(,,,)

или импортирует именованные экспорты, такие как

import {map, propEq, equals, pipe} from 'ramda';
...
map(...),
propEq(..,..),
equals(..,..),
pipe(,,,)

создает разницу в размере сборки? Компилятор строит с полной ramda lib в первом случае и только необходимые функции во втором? Достаточно ли он умен и проверяет, какие функции используются в коде, и сохраняет их только в сборке?

Я протестировал его на выборке из 2-3 именованных функций экспорта по умолчанию для ramda, и размер сборки такой же. Будет ли он масштабироваться таким же образом?

1 Ответ

0 голосов
/ 15 марта 2019

Насколько я знаю, это вопрос веб-пакета, а не Reactjs.

Быстрый ответ для большинства библиотек заключается в том, что это не влияет на размер пакета, но рекомендуется не загружать всю библиотеку каждый раз, когда вам нужна только одна часть.

Также вы можете провести исследование о конкретных библиотеках, которые вас интересуют. Например, для lodash с настройками вы можете сделать:

import get from "lodash/get"

и это приведет к загрузке только этого модуля и, в конечном итоге, к уменьшению размера пакета. Те же решения существуют для моментов и т. Д. И многих других библиотек, которые, вероятно, большие, и в итоге вы не используете все это.

Вы можете пометить этот вопрос с помощью веб-пакета, чтобы получить более образованный и информированный ответ

...