Включение зависимостей в пакет плагинов (накопительный пакет)

#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
  • или включать зависимости во все сборки

?