1

所以我有一个 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"
    }
}

如何填充包本身的依赖项?

4

1 回答 1

0

Browserify Shim 的标语是:

使 CommonJS 不兼容的文件可浏览。

您的问题是它react-lite已经与 CommonJS 兼容。对于任何与 CommonJS 兼容的文件,Browserify 将在涉及到 Browserify Shim 之前自动添加其dependencies和适当的。peerDependencies

我建议您将包中的peerDependencies条目更改react-nouislider为适当的版本react-lite并删除上面的 Browserify Shim 配置,因为不再需要它。当你这样做时,一定要运行react-nouislider包中的所有测试,以确保它仍然可以使用react-lite而不是 React。这样做的一个好方法是分叉react-nouislider到你自己的仓库,在那里进行更改,然后从你的package.json.

于 2016-03-17T11:00:07.070 回答