Как использовать пакет npm webrtc-adapter в Next.js - PullRequest
0 голосов
/ 14 января 2019

Я создаю React с помощью Next.js. Мой импорт ES6 отлично работает для файлов .js, которые я создаю, но когда я импортирую webrtc-adapter, он завершается неудачно в следующем, но успешно реагирует на приложение:

import {adapterFactory} from './adapter_factory.js';
       ^
SyntaxError: Unexpected token {

Например, вот две ссылки, которые воспроизводятся:

Ниже приведен сокращенный контрольный пример. Просто импортируйте webrtc-adapter и сохраните его. Работает в CRA, но не в Next.

Импорт ES6 в мои собственные файлы прекрасно работает, но не для сторонних пакетов. Есть идеи?

{
  "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"
  }
}

На страницах / index.js

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

Я даже попробовал:

import 'webrtc-adapter';

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 24 мая 2019

Поскольку Next.JS компилируется на сервере и клиенте, вы не можете быть уверены, что находитесь в контексте браузера (окно не определено).

Чтобы исправить это часто, вы можете использовать простую проверку как:

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

, чтобы убедиться, что вы находитесь в контексте браузера

...