强制忽略一个依赖项的依赖关系,使其不被npm/yarn安装。

14
我的Node.js项目使用了一些库。其中一个叫做pouchdb的库会尝试安装相当多的依赖项。其中有一个叫做leveldown的依赖项,它将尝试从互联网下载Node.js头文件,然后从头开始重新构建所有内容。实际上,我根本不需要leveldown。但是他们社区建议我私有分支一个pouchdb并修改package.json,以排除任何我不需要的依赖项。
这是我对npm/yarn团队的一般问题。在运行npm installyarn install时,是否有可能防止特定的库被下载?
1个回答

5
不,无法在安装过程中排除子依赖项。

然而,在你的情况下,你不需要私自fork 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'));

谢谢。这是一个合理的解决方案。令人烦恼的实际上并不是 leveldown 而是 node-gyp,它试图下载当前 nodejs 的头文件,然后从头开始重新构建一切。但在公司代理后面,需要从互联网下载东西会有一些困难,特别是当我轻松升级 nodejs 时(这意味着需要再次下载相应的头文件)。 - stanleyxu2005

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接