2017-08-05 68 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