ΠΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Typescript ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ peerjs ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ NPM. ΠΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΊΠ°ΠΊ Β«peerjsΒ»: Β«git+ https://github.com/peers/peerjs.git Β», ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° Π² /node_modules/peerjs/dist/peer.js.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ·Π»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΡΠ°Π½Π³ΠΎΠ²ΡΠΉ ΡΠ·Π΅Π».
ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠΌ Π½Π° TS Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ postinstall
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ°ΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ (ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π· git, ΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π― ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ°Π·Π²Π΅ΡΠ²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ peerjs ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ postinstall
, Ρ Π½Π΅Π³ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅Ρ Π·Π°Π΄Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΈ Π±Ρ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Β«dist/peer.jsΒ».
ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠΎΠΏΡΠΎΡ β ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ΅ΠΏΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΠ±ΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ peerjs Π² dist/peer.js?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
@ΠΠ°Π±Π°Π»ΡΠ΅ΡΠΎΠ³
Selenium Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΠΏΠΎΡΡΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΡΠ½ΡΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ? 0.3.19
Π’Π°ΠΊΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ, ΡΠ±ΠΎΡΠΊΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ grunt, ΠΎΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ gruntfile.js. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° - Ρ (ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΡ). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ grunt, Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± β ΡΡΠΎ npx grunt
.
@kidandcat
ΠΠ·Π²ΠΈΠ½ΡΡΡΡ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π·Π°ΠΊΡΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PeerJS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ... Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ:
yarn create react-app my-app
yarn add peerjs
src/App.js
ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅:import Peer from "peerjs";
// ...
class App extends Component {
componentDidMount() {
const peer = new Peer('peer-id', {});
}
// ...
}
yarn start
Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ Π½Π° http://localhost :3000, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅:
TypeError: peerjs__WEBPACK_IMPORTED_MODULE_9___default.a is not a constructor
ΠΠ°ΠΊ ΡΠΊΠ°Π·Π°Π» @xavierfuentes -> ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ:
ng new app
npm install --save peerjs
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', {})
}
}
ERROR TypeError: peerjs__WEBPACK_IMPORTED_MODULE_2__ is not a constructor
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° Π·Π°Π΄Π΅ΡΠΆΠΊΡ, [email protected] Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΡΠ΅ΡΠ΅Π½, ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@kidandcat
ΠΠ·Π²ΠΈΠ½ΡΡΡΡ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π·Π°ΠΊΡΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PeerJS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ... Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ:
yarn create react-app my-app
yarn add peerjs
src/App.js
ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅:yarn start
Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ Π½Π° http://localhost :3000, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅:
TypeError: peerjs__WEBPACK_IMPORTED_MODULE_9___default.a is not a constructor