NPM 在父级已经满足时安装嵌套依赖项

NPM installing nested dependency when already satisfied by parent

我在 NPM 在我的项目中安装两个 React 副本时遇到问题。以下是依赖项的相关部分:

我的package.json:

"dependencies": {
    "react": "0.12.2",
    "tcomb-form": "0.4.5"
}

tcomb 形式的 package.json:

"peerDependencies": {
    "react": ">=0.12.0"
}

我不希望 tcomb-form 得到它自己的 React 副本,因为我已经有一个满足其 peerDependencies.

的依赖项

然而,在npm 2.7.4中,它确实tcomb-form/node_modules/react中安装了一个单独的版本,并且这个版本与我的版本不兼容(我使用0.12,正在安装 0.13)

npm 1.4.28 中,此行为不同,tcomb-form/node_modules/react 不存在 ,它只会使用我的版本。

有没有办法让我们在最新的npm中都使用相同版本的React?

npm dedupe 应该可以解决这个问题。在 npm 的未来版本中,我相信默认情况下这会在 npm install 期间发生,但从 1.x 和 2.x 开始,我认为需要单独的重复数据删除。