#build #dependencies #package.json #rollupjs
Вопрос:
Я пишу плагин, у которого есть зависимость.
"dependencies": {
"tinycolor2": "^1.4.2"
}
Это требуется в коде плагина, как это:
const tinycolor = require('tinycolor2');
У меня есть 3 цели: esm, ssr и мин.
Когда пользователи npm install
это сделают, они также установят зависимость, и она будет работать так, как ожидалось.
Однако, когда минимальная версия включена из CDN, она не только вызывает ошибку ссылки: require is not defined
, но и не требует ничего, потому что зависимости нет.
Поэтому , если я заменю require
в своем коде на import
, это приведет к тому, что каждый целевой пакет увеличится вдвое по размеру, очевидно, потому что зависимость теперь встроена в окончательный пакет.
Поэтому я решил, что теперь мне следует удалить зависимость, так как она встроена в код dist.
Но мои инстинкты говорят мне, что это неправильно. Это похоже на ненужное увеличение размера пакета. Я думаю, что хочу сохранить свою единственную зависимость внешней.
Может ли кто-нибудь объяснить, как это правильно сделать?
Если это имеет значение, я использую накопительный пакет для объединения.
Обновить
Я думаю, что лучший способ спросить об этом: должен ли я…
- экстернализируйте зависимость во всех сборках (но как тогда лечить CDN?)
- экстернализация зависимости только для сборки CJS
- или включать зависимости во все сборки
?