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

Update to browser.js #122

Closed
wants to merge 1 commit into from
Closed

Update to browser.js #122

wants to merge 1 commit into from

Conversation

justjish
Copy link

Helps to prevent an issue when this code is bundled using Rollup.

Helps to prevent an issue when this code is bundled using Rollup.
@sindresorhus
Copy link
Member

Can you link to the Rollup issue in their issue tracker?

@@ -1,6 +1,6 @@
/* eslint-env browser */

const isBlinkBasedBrowser = /\b(Chrome|Chromium)\//.test(navigator.userAgent);
const isBlinkBasedBrowser = typeof navigator !== 'undefined' ? /\b(Chrome|Chromium)\//.test(navigator.userAgent): false;
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
const isBlinkBasedBrowser = typeof navigator !== 'undefined' ? /\b(Chrome|Chromium)\//.test(navigator.userAgent): false;
const isBlinkBasedBrowser = typeof navigator !== 'undefined' && /\b(Chrome|Chromium)\//.test(navigator.userAgent);

Copy link
Member

Choose a reason for hiding this comment

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

The RHS of the : in a ternary is implicitly the false case, so this can be simplified as such - namely that the short-circuit will result in a false and RegExp.prototype.text() returns a boolean.

@Trott
Copy link

Trott commented Aug 21, 2021

Can you link to the Rollup issue in their issue tracker?

I don't believe there is an issue in the issue tracker for this. I don't think it's a bug (although it is surprising behavior, at least to me).

@sujishpatel I believe this is an issue with @rollup/plugin-node-resolve. By default, it will use the "default" export over the "node" export. For this module, the default export is browser.js which is not intended to work in Node.js. The docs for @rollup/plugin-node-resolve say to set the exportConditions option to ['node'] if you want the resolution behavior of Node.js. That config change fixed the issue for me. I would expect that to be the default behavior with that plugin, but I do not know the full context around the decision to do otherwise, so maybe there is an excellent reason for it. In any event, to get that behavior, use nodeResolve({exportConditions: ['node']}) instead of just nodeResolve() in your rollup config. That fixed the issue for me.

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.

4 participants