如何在Next.js中使用webrtc-adapter npm软件包

时间:2019-01-14 06:23:38

标签: reactjs webrtc next.js

我正在用Next.js创建一个React。我的ES6导入对于我创建的.js文件工作正常,但是当我导入log-composed时,它在下一个失败,但在react-app中成功:

webrtc-adapter

例如,以下是两个复制的链接:

以下是简化的测试用例。只需导入import {adapterFactory} from './adapter_factory.js'; ^ SyntaxError: Unexpected token { 并进行控制台即可。在CRA中可用,但在Next中不可用。

在我自己的文件中导入ES6可以很好地工作,但不能使用外部软件包。有什么想法吗?

webrtc-adapter

在pages / index.js

{
  "name": "webrtc-test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "next": "^7.0.2",
    "react": "^16.8.0-alpha.0",
    "react-dom": "^16.8.0-alpha.0",
    "webrtc-adapter": "^7.1.1"
  },
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  }
}

我什至尝试:

import adapter from 'webrtc-adapter';
console.log(adapter);
export default () => <div>Welcome to next!</div>;

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

由于Next.JS是在服务器和客户端上编译的,因此不能确定您是否处于浏览器上下文中(窗口未定义)。

要经常解决此问题,您可以使用简单的检查方法,例如:

if (typeof window !== 'undefined') {
  var adapter = require('webrtc-adapter')
}

确保您在浏览器上下文中