2017-08-05 74 views
5

我的項目的NodeJS使用一些圖書館正在安裝一個從屬關係的依賴。一個庫pouchdb將嘗試安裝相當多的依賴項。有一個名爲leveldown,它將嘗試從Internet下載Node.js頭,然後從頭開始重新構建所有內容。其實我根本不需要leveldown。但他們的社區建議我私下分支pouchdb並修改package.json以排除任何我不需要的依賴。強制忽略由NPM /紗

這是我對NPM /紗人們普遍質疑。在運行npm installyarn install時是否可以防止下載特定的庫?

回答

3

不,這不可能排除安裝一個子依賴性。


然而,在你的情況,你不需要私下叉pouchdb。 PouchDB具有作爲npm包發佈的定製版本:https://pouchdb.com/custom.html

如果你想安裝pouchdb在瀏覽器,npm install pouchdb-browser使用。

如果你使用其他存儲適配器(如內存適配器),您可能要npm install pouchdb-core代替。請注意0​​不包含一些與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',它試圖下載頭文件或當前節點j,然後從頭開始重新構建所有東西。但是在公司代理的背後,從互聯網上下載東西會有一些困難,尤其是當我輕鬆升級nodejs(這意味着需要再次下載相應的頭文件) – stanleyxu2005