Принудительно игнорировать зависимость одной зависимости от установки npm/yarn

мой проект nodejs использует некоторые библиотеки. Одна библиотека pouchdb попытается установить довольно много зависимостей. Есть один под названием leveldown, который попытается загрузить узел.заголовок js из интернета, а затем перестроить все с нуля. На самом деле мне не нужно leveldown на всех. Но их сообщество предлагает мне в частном порядке развить pouchdb и изменить пакет.json, чтобы исключить любую зависимость, которая мне не нужна.

вот мой генерал вопрос к людям npm / yarn. Можно ли предотвратить загрузку определенной библиотеки во время выполнения npm install или yarn install?

1 ответов


нет, невозможно исключить суб-зависимость от установки.


однако, в вашем случае, вам не нужно в частном порядке вилка pouchdb. PouchDB имеет пользовательские сборки, опубликованные как пакеты npm:https://pouchdb.com/custom.html.

если вы хотите установить pouchdb для использования в браузере, npm install pouchdb-browser.

если вы используете другие адаптеры хранения (например, адаптер в памяти), вы можете захотеть . Заметить что pouchdb-core не включает некоторые функции, которые поставляются с pouchdb.

  • Если вам нужно использовать query() или viewCleanup(), вам необходимо установить pouchdb-mapreduce и передать его как плагин.
  • Если вам нужно использовать replicate() и sync(), вам необходимо установить pouchdb-replication и передайте его как плагин.

пример использования:

const PouchDB = require('pouchdb-core')
  .plugin(require(WHATEVER_STORAGE_ADAPTER_YOU_ARE_USING))
  .plugin(require('pouchdb-mapreduce'))
  .plugin(require('pouchdb-replication'));