2017-08-05 31 views
5

私のnodejsプロジェクトはいくつかのライブラリを使用しています。あるライブラリpouchdbはかなりの依存関係をインストールしようとします。 leveldownと呼ばれるものがあり、これはインターネットからNode.jsヘッダーをダウンロードし、最初からすべてを再構築しようとします。実際には私はleveldownがまったく必要ありません。しかし彼らのコミュニティは私に個人的にpouchdbをフォークし、package.jsonを変更して、私が必要としない依存関係を除外するように提案します。npm/yarnによって依存関係の依存関係が強制的に無視されるようにしました。

ここにnpm/yarn folksの一般的な質問があります。 npm installまたはyarn installを実行中に、特定のライブラリがダウンロードされないようにすることはできますか?

答えて

3

いいえ、サブ依存関係をインストールから除外することはできません。


ただし、あなたの場合は、私的にpouchdbをフォークする必要はありません。 PouchDBにはnpmパッケージとして公開されたカスタムビルドがあります:https://pouchdb.com/custom.html

ブラウザで使用するためにpouchdbをインストールする場合は、npm install pouchdb-browser

他のストレージアダプタ(メモリアダプタなど)を使用している場合は、代わりにnpm install pouchdb-coreを使用することができます。 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')); 
+0

ありがとうございました。これは合理的な解決策です。迷惑なことは、実際には 'leveldown'ではなく' node-gyp'であり、ヘッダファイルや現在のnodejをダウンロードしてから最初からすべてを再構築しようとします。しかし、企業プロキシの背後には、インターネットからダウンロードするのが難しいことがあります。特にnodejsを簡単にアップグレードすると(対応するヘッダを再度ダウンロードする必要があります) – stanleyxu2005

関連する問題