【发布时间】:2021-12-05 13:13:06
【问题描述】:
安装:
npm i peerjs
/plugins/peerjs.js
import Peer from 'peerjs'
export default Peer
nuxt.config.js
plugins: [
{ src: "~/plugins/peerjs.js", ssr: true }
],
浏览器错误:
client.js?06a0:103 TypeError: Cannot set properties of undefined (设置'_events') 在我 (peerjs.min.js?a0bc:46) 在我 (peerjs.min.js?a0bc:66) 在 _callee2$ (index.js?f26e:87) 在 tryCatch (runtime.js?96cf:63) 在 Generator.invoke [as _invoke] (runtime.js?96cf:294) 在 Generator.eval [as next] (runtime.js?96cf:119) 在 asyncGeneratorStep (asyncToGenerator.js?1da1:3) 在 _next (asyncToGenerator.js?1da1:25) _callee$@client.js?06a0:103 tryCatch@runtime.js?96cf:63 invoke@runtime.js?96cf:294 eval@runtime.js?96cf:119 asyncGeneratorStep@ asyncToGenerator.js?1da1:3 _next @ asyncToGenerator.js?1da1:25 评估@asyncToGenerator.js?1da1:32 评估@asyncToGenerator.js?1da1:21 评估@client.js?06a0:65 Promise.catch (asíncrono) eval @ client.js?06a0:115 eval @ client.js:1294 ./.nuxt/client.js@app.js:35 webpack_require @runtime.js:854 fn @runtime.js:151 0 @app.js:9767 webpack_require @runtime.js:854 checkDeferredModules @runtime.js:46 webpackJsonpCallback @runtime.js:33 (anónimo) @ app.js:1
【问题讨论】:
-
看起来服务器实际上不支持 Peerjs:github.com/peers/peerjs/issues/641 所以,你应该做相反的事情,也就是
mode: 'client'。另外,除了import和export之外,您不需要在这里做其他事情。另外,如果您在全球范围内不需要它,请考虑在本地使用它:stackoverflow.com/a/69593428/8816585(和/或stackoverflow.com/a/69572014/8816585) -
将
ssr: true更改为mode: 'server'似乎可行,我知道为什么 -
ssr已弃用,应替换为mode。然后,ssr: true表示您希望您的插件同时在服务器和客户端上运行。同时,由于peerjs依赖于window(仅在浏览器中可用),您只需在'client'上运行即可。不知道为什么你的东西适用于'server'tho。你的问题解决了吗?介意我发布答案吗? -
我理解你的意思,但它在
client上崩溃并在server上运行有点奇怪 -
实际问题是什么?你有错误还是什么?