`global` Reference Error in Browser Environment

Open
#38 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
javascript
Domain
web-dev

Research direction

Start with browser.js at the linked implementation and reproduce the failure by using randombytes@2.1.0 in a browser environment built with Vite. Trace the browser-side crypto initialization and verify that the build no longer raises "global is not defined" while still accessing the browser crypto implementation.

Written by the indexing model from the issue text.

Description

When using randombytes@2.1.0 in a browser environment with Vite as the build tool, the following error occurs:

Uncaught ReferenceError: global is not defined

This error stems from the browser.js implementation attempting to access the global object which is not available in browser DOM environments:

var Buffer = require('safe-buffer').Buffer
var crypto = global.crypto || global.msCrypto

As the source code mentioned below crypto is defined correctly

https://github.com/browserify/randombytes/blob/b4eb4126fccc503e375853ca7b3e96aaa34af9e6/browser.js#L15-L16

Dominant language
JavaScript
Stars
102
Forks
47
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from browserify/randombytes

All issues in browserify/randombytes

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.