iconv-lite icon indicating copy to clipboard operation
iconv-lite copied to clipboard

Error: 'global is not defined'

Open RaschidJFR opened this issue 3 years ago • 2 comments

When importing iconv-lite (v0.6.2) in an Angular 10 app I'm getting this error:

Uncaught ReferenceError: global is not defined
    at Object../node_modules/buffer/index.js (my-component.js:238)
    at __webpack_require__ (runtime.js:85)
    at Object../node_modules/safer-buffer/safer.js (my-component.js:8266)
    at __webpack_require__ (runtime.js:85)
    at Object../node_modules/iconv-lite/lib/index.js (my-component.js:7768)
    at __webpack_require__ (runtime.js:85)
    at Module../src/my-component.ts (my-component.js:11618)
    at __webpack_require__ (runtime.js:85)
    at Object.1 (my-component.js:11705)
    at __webpack_require__ (runtime.js:85)

It looks like the error comes from the dependency safer-buffer, but whilst it gets fixed, a workaround for this is adding this line in index.js:

// node_modules/iconv-lite/lib/index.js
window.global = window;  // Add this just before importaing safer-buffer
var Buffer = require("safer-buffer").Buffer;

RaschidJFR avatar May 12 '21 19:05 RaschidJFR

I've created a hotfix but can't create a PR because it is not up to date with master and master is now too far from this version. So If anyone runs across this issue, you can use this fix for now:

npm install raschidjfr/iconv-lite#hotfix/v0.6.3

RaschidJFR avatar May 12 '21 20:05 RaschidJFR

Because of the removal of safer-buffer with #265 this might be auto fixed in the next version.

TheThing avatar Jun 08 '21 08:06 TheThing