我正在开发一个外部组件(假设我的组件,我用npm链接链接到项目(因为它正在进行中,我需要包来反映更改)。
在my-component文件夹中有node_modules / react和node_modules / react-dom,因为它们是它的依赖项。但是它们是peerDpendences,所以我没想把它们带到链接这个包的项目中。
但是,当使用npm链接时,它会链接整个目录,包括node_modules。因此,当项目构建时,它包括2次包:来自node_modules / *和来自node_modules / my-component / node_modules / *。
这开始影响组件何时使用ReactDOM.findDOMNode,它会导致此错误:
Warning: React can't find the root component node for data-reactid value `.0.2.0`. If you're seeing this message,it probably means that you've loaded two copies of React on the page. At this time,only a single copy of React can be loaded at a time.
此外,它可能有助于了解发生了什么:仅当存在node_modules / my-component / node_modules / react和node_modules / my-component / node_modules / react-dom时才会出现问题。如果只有其中一个,则没有错误消息。
通常的软件包安装不会带来这样的错误,因为那里没有node_modules / react-dom。
如何同时开发外部组件和项目?