Peerjs: No se puede importar Peer en la aplicación Angular

Creado en 7 feb. 2019  ·  13Comentarios  ·  Fuente: peers/peerjs

El problema # 479 todavía está presente. Estoy usando la versión 0.3.20 de peerjs. Reproducir:

  • crear una nueva aplicación Angular ng new app
  • npm install --save peerjs
  • editar archivo app.component.ts:
import * as Peer from 'peerjs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  title = 'app';

  ngOnInit(): void {
    new Peer('123', {})

  }
}
  • inicio npm
    El resultado será: ERROR TypeError: peerjs__WEBPACK_IMPORTED_MODULE_2__ is not a constructor

Comentario más útil

Estoy trabajando en eso, de todos modos cualquier PR es bienvenido

Todos 13 comentarios

Puedo confirmar, probé peerjs en Ionic 4 (que supongo que ejecuta Angular 6) con el mismo método de importación

Tiene el mismo problema al usar Webpack y CreateReactApp. Parece ser un nuevo problema introducido en 0.3.20 o 0.3.19.

Estoy trabajando en eso, de todos modos cualquier PR es bienvenido

¡Gracias @kidandcat ! Me encantaría ayudar, pero no tengo experiencia con TypeScript. La versión 0.3.18 funciona bien, así que no se preocupe.

Lo mismo aquí, usando vue-cli

Corregido en [email protected]

@kidandcat probó con 0.3.22 y 1.0.0 en Angular 7, este problema todavía se ve.

¿Cómo lo estás importando?

¿Cómo lo estás importando?

Pocos:
import * as Peer from 'peerjs' -> este se cumplió con éxito, sin embargo, se arrojó el mismo error que en el primer comentario
import { Peer } from 'peerjs' y import Peer from 'peerjs' -> estos dos causaron un error de compilación

Solo instalo el paquete peerjs , no uso @type/peerjs ya que index.d.ts ya está disponible en el paquete peerjs .

@kidandcat Pude resolver mi problema habilitando la siguiente bandera en el archivo tsconfig.json
''
{
...
"esModuleInterop": verdadero,
...
}

@nhducseuit ¿cuál es el contexto que

  1. importar * como par de 'peerjs'
  2. importar {Peer} de 'peerjs'
  3. importar Peer desde 'peerjs'

Tengo este problema con ionic 4.

"@ angular / común": "^ 7.2.2","@ angular / core": "^ 7.2.2","@ angular / formas": "^ 7.2.2","@ angular / http": "^ 7.2.2","@ angular / platform-browser": "^ 7.2.2","@ angular / platform-browser-dynamic": "^ 7.2.2","@ angular / enrutador": "^ 7.2.2","@ ionic-native / core": "^ 5.0.0","@ ionic-native / splash-screen": "^ 5.0.0","@ ionic-native / status-bar": "^ 5.0.0","@ iónico / angular": "^ 4.1.0","búfer": "^ 5.2.1","core-js": "^ 2.5.4","peerjs": "^ 1.0.2",

¿Que puedo hacer?

@kidandcat Pude resolver mi problema habilitando la siguiente bandera en el archivo tsconfig.json

{
...
    "esModuleInterop": true,
...
}

¿Tiene esto algún impacto en algo más?
¿Podría romper otras cosas?
La documentación mecanografiada dice algo que realmente no es comprensible.
¿Qué hace realmente esta opción esModuleInterop? Porque no queremos romper otras cosas.
https://www.typescriptlang.org/docs/handbook/compiler-options.html

¿Fue útil esta página
0 / 5 - 0 calificaciones