2016-12-18 4 views
0

Допустим, я работаю над библиотекой, которая будет использоваться другими разработчиками. У MyPackage есть зависимость от момента. Разработчик, который потребляет мой пакет, также имеет зависимость от момента. Таким образом, момент будет существовать как «зависимость» как в библиотеке package.json, так и в application package.json (и, следовательно, дважды упаковывается). Есть ли способ упаковать его только один раз? Если у потребителя есть это, используйте их, иначе используйте мой?npm package.json dependencies - для компонента библиотеки

+0

Что делать, если они зависят от другой версии, чем вы? Просто обрабатывайте свои собственные зависимости, не беспокойтесь о всех остальных. – jonrsharpe

+0

Я понимаю. Если мы стандартизируем версию, мы можем уменьшить конечную полезную нагрузку, если нам не нужно все несколько раз упаковывать. Момент - это только одна из многих зависимостей. –

+0

У вас действительно есть проблема с размерами выходных файлов или чем-то еще? Это похоже на преждевременную оптимизацию. Тем не менее, если это только для внутреннего использования, и все рады использовать одну и ту же версию, вы можете сделать равноправную зависимость https://nodejs.org/en/blog/npm/peer-dependencies/ – jonrsharpe

ответ

0

Это уже происходит по умолчанию при свежих установках, если соответствующие диапазоны зависимостей совпадают.

npm v> = 3 gang зависимости, в зависимости от порядка установки и глубины, см. here.

Кроме того, если вы продолжаете работать в одной и той же папке на некоторое время, может быть какой-то рывок, который можно стереть с помощью npm dedupe, см. here.

Теоретически moment не следует дублировать, если ваша библиотека и библиотека разработчика потребляют одни и те же диапазоны версий. По крайней мере, если вызывается npm dedupe или node_modules, то вычищены и npm i -установлено.