【问题标题】:Force ignore one dependency's dependency from being installed by npm/yarn强制忽略一个依赖项的依赖项,使其不被 npm/yarn 安装
【发布时间】:2018-01-13 09:49:06
【问题描述】:

我的 nodejs 项目使用了一些库。一个库pouchdb 将尝试安装相当多的依赖项。有一个叫leveldown,它会尝试从 Internet 下载 Node.js 头文件,然后从头开始重建所有内容。实际上我根本不需要leveldown。但是他们的社区建议我私下 fork pouchdb 并修改 package.json 以排除我不需要的任何依赖项。

这是我对 npm/yarn 人员的一般性问题。是否可以在运行npm installyarn install 时阻止下载特定库?

【问题讨论】:

    标签: node.js npm pouchdb yarnpkg


    【解决方案1】:

    不,不能从安装中排除子依赖项。


    但是,在您的情况下,您不需要私下分叉 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时(这意味着需要重新下载相应的header)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多