我是 libp2p 的新手,所以如果这是在其他地方被询问/讨论过的问题,请原谅。我正在尝试在使用 create-react-app 制作的新创建项目中进行设置。该应用程序当前有一个组件,其中包含以下内容:
import React, {Component} from 'react';
从'libp2p-mplex'导入mplex;从“libp2p-noise”导入噪声;从'libp2p'导入Libp2p;
类连接器扩展组件{
constructor (props)
{
super(props);
this.state = {};
}
componentDidMount(){
node = Libp2p.create({
addresses:{
isten: [
'/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star',
'/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star'
]
},
modules:{
connEncryption:[Noise],
streamMuxer:[mplex],
transport:[WebSockets]
}
})
console.log(node);
}
render(){
return (<div>The connector component</div>);
}
}
export default Connector;
我知道仅此一项不足以连接到任何东西,但它甚至无法编译。运行此程序时,我收到以下错误消息:
未找到模块:无法解析“/Users/myuser/projects/p2p-browser/node_modules/node-fetch/src”中的“node:http”</p>
我查看了引用的 node-fetch 模块的源代码,发现它确实需要 node:http。我还发现 node: 前缀是让 node 始终包含 node 的本机 http 模块。由于这是一个在浏览器上运行的 react-app,我认为根本没有理由使用 node-fetch,这导致我认为 libp2p 与浏览器不兼容,或者我正在使用 node.js libp2p 版本而不是“浏览器版本”,但到目前为止,我还没有找到任何文档表明存在“浏览器版本”,我见过的示例使用 parcel 并包含相同的 npm 模块。那么,我是否遗漏了什么,或者 libp2p 只是与 create-react-app 不兼容,需要使用 parceljs 为浏览器编译?
任何帮助将不胜感激。谢谢你。