node.js - 如何在 browserify 中填充 npm 包依赖项?

标签 node.js npm browserify browserify-shim

所以我有一个 React 项目,其中我实际上使用 React-lite 进行部署,因为占用空间小得多。我想使用react-nouislider ,但在它的 package.json 中,我发现了这个:

"peerDependencies": {
    "react": "^0.14.0"
}

这意味着每当我需要react-nouislider时,它都会引入React而不是react-lite。如何从我的顶级 package.json 中填充 npm 包的依赖项?

这就是我如何调整react-lite:

"browser": {
    "react": "react-lite"
}

我尝试了这个,但没有成功:

"browserify-shim":{
    "react-nouislider": {
        "depends": "react-lite"
    }
}

如何填充包本身的依赖关系?

最佳答案

Browserify Shim 的口号是:

Makes CommonJS incompatible files browserifyable.

您的问题是 react-lite 已经与 CommonJS 兼容。对于任何 CommonJS 兼容文件,Browserify 将在 Browserify Shim 介入之前根据需要自动添加其依赖项peerDependency

我建议您将 react-nouislider 包中的 peerDependency 条目更改为适当版本的 react-lite 并删除上面的 Browserify Shim 配置,因为不再需要它。执行此操作时,请务必在 react-nouislider 包中运行任何测试,以确保它仍然适用于 react-lite 而不是 React。实现此目的的一个好方法是将 react-nouislider fork 到您自己的存储库,在那里进行更改,然后从 package.json 中的该存储库中提取。

关于node.js - 如何在 browserify 中填充 npm 包依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36055865/

相关文章:

node.js - 在redis中过滤数据

node.js - admin.messaging 不是一个函数

javascript - 连接 create-react-app reactJs 和 mysql

backbone.js - 作为 CommonJS 模块的主干 View

javascript - 如何使用 browserify 和 gulp 输出多个包

javascript - 使用浏览器化 Node 应用程序访问 module.exports

node.js - 如何解析 Node 中的大型分隔文本文件

node.js - Electron 静音打印

css - 通过 NPM 安装 less 后,lessc 二进制文件不可用

javascript - 在 Meteor 中上传 POST 提交的图片