Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Releases 2.0 #927

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open

Releases 2.0 #927

wants to merge 29 commits into from

Conversation

afrokick
Copy link
Member

@afrokick afrokick commented Feb 19, 2022

Sorry, just copy&paste it from CHANGELOG because I want to sync it.


  • update docs
  • update readme

V2

The main goals of the second version:

  • modernize the code base: use es6 and latest tools;
  • target to the latest browsers API(you can use webrtc adapter to shim old browsers);
  • shrink the package size;

Breaking changes

Drop ES5 supports

If you need to support es5, you can recompile the lib from the sources or use the latest version from the v1 branch like npm i peerjs@1.

Remove webrtc-adapter package from dependencies

The modern browsers mostly works good without any additional libs like webrtc-adapter.

You can increase cross browsers support by manually add webrtc-adapter package to your project:

npm install webrtc-adapter

Then import it as soon as possible. For example, you have an entry point for your application in the file index.tsx. So, lets add the import:

import 'webrtc-adapter'; // as soon as possible

//
//... your startup code
//

See more: https://github.com/webrtcHacks/adapter

Remove browser detection features from the library.

The browser field was removed from the util class
and the OFFER packet.

The main field of package.json now points to the non minified version.

Today, most projects use bundlers with a minification step. Sometimes, double minification can lead to issues.

If you want to use the minified version, use it directly from the dist folder like:

import Peer from 'peerjs/dist/peerjs.min.js';

...

Use ESBuild as bundler.

Parcel 1 was a good choice years ago, but now esbuild seems like simple and good solution!

Another changes

  • update devDependencies
  • apply Prettier for the code style

@afrokick afrokick added this to the 2.0.0 milestone Feb 19, 2022
@afrokick
Copy link
Member Author

afrokick commented Feb 20, 2022

npm i peerjs@beta published!

Copy link

@lmachens lmachens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am excited, good job! Didn't try it out yet, but inspected your changes. It's nice to have full TypeScript support 🤘.

Comment on lines +10 to +14
prettified-message: >
I have adjusted the formatting of this pull request for you.

To stop seeing this message, please install Prettier on your machine and run
`meteor npm run format` to format your changes before submitting them.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this message should be updated (not using meteor or having a script called format).

.prettierignore Outdated
@@ -0,0 +1,2 @@
node_modules/
*.html

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not format HTML files?

@jonasgloning jonasgloning deleted the releases/2.0.0 branch May 5, 2022 14:03
@jonasgloning jonasgloning restored the releases/2.0.0 branch May 5, 2022 14:04
@jonasgloning jonasgloning reopened this May 5, 2022
@noahm
Copy link

noahm commented Sep 10, 2022

I've been testing the latest beta.3 release for a new project and I'm loving the smaller package size. I did have problems using it in along with webpack though. When building for a web target (the default) webpack looks for the following package.json fields as entry points: browser, module, main using the first one it finds. With this 2.0 version the browser field points a JS file whose contents are wrapped in a IIFE and doesn't successfully export anything. All attempts to use the library fail until I do one of:

  • update webpack config to prefer module or main fields over browser
  • replace import Peer from 'peerjs'; with import 'peerjs' and rely on the Peer global it attaches to window

Neither of these are ideal. I'm not familiar with the specifics of the IIFE wrapper or the specific differences between the way all three of your builds are targeted, but I've never run into an issue like this before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants