valor-software / ng2-dragula

Simple drag and drop with dragula

Home Page:http://valor-software.com/ng2-dragula/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Uncaught ReferenceError: global is not defined

Mathem8tic opened this issue · comments

Angular 6.0.0-rc.3 and Angular-CLI 6.0.0-rc.2. Error in browser console. Will try and figure out solution and report back...

It happens with @angular 6.0.0-rc.3 and @angular/cli 6.0.0-rc.3 too.

In fact it fails with any versions combination newer than @angular 6.0.0-rc.0 + @angular/cli 1.7.4

It's working with the following combinations:
@angular 6.0.0-rc.0 + @angular/cli 1.7.4
@angular 6.0.0-rc.4 + @angular/cli 1.7.4

Anyone have any luck on this?

commented

Any update on this?

I was able to work around this for now by adding an entry for dragula to the paths in my tsconfig.json

"paths": {
      "dragula": ["../node_modules/dragula/dist/dragula.min.js"]
    }

@rrajewski, I owe you a beer!

BTW, I put it on tsconfig.app.json (inside /src directory)

You can add (window as any).global = window; in polyfills.ts

You can add (window as any).global = window; in polyfills.ts
worked for me. thanks

You can add (window as any).global = window; in polyfills.ts

Worked like charm. Thanks!

The solution is just a workaround... Can this be solved properly?
angular/angular-cli#9827 (comment)

<script>
var global = global || window;
var Buffer = Buffer || [];
var process = process || {
  env: { DEBUG: undefined },
  version: []
};
</script> i added this to index.html and that sove the problem

@Gerros unfortunately the fix will be just to integrate the workaround. Usually one would just send issues upstream to dragula (code search on both repos reveals no use of global here), but that project has not been touched in a year and I don’t think the original owner still looks at it (calling @bevacqua?). It will have to be @lukica88’s solution but in one of our source files (any one will do) with a link to this issue in a comment. (I can’t push new versions but @valorkin can.)

@cormacrelf I can give you push access and could help to set up publish from CI
(like in ngx bootstrap)
Drop me a note if you are interested in maintaining ng2-dragula :)

Plus I can ask @bevacqua to do the same with dragula :)

Also @valorkin, last publish was 1.5.0 from #636, but you don't appear to have pushed the commit changing the version number. Was there anything else you didn't push, or can just bump the version past 1.5.0 without losing anything? Ref #747 as well.

adding this line in to pollyfills.ts fixed my problem if u r using angular 6

(window as any).global = window;

Actually, this can't be fixed in ng2-dragula. Seriously.

It would appear dragula gets loaded first, and tries to use window.global. So any polyfilling from inside the lib is too late. To fix it, you'd need to summon @bevacqua from wherever he's gone (other projects, apparently), or maintain a fork. I'm not going to maintain a fork.

I'm leaving this issue open so people can find it, and adding a note to the docs in lieu of actually solving it.

adding this line in to pollyfills.ts fixed my problem if u r using angular 6

(window as any).global = window;

Thanks @mhadji, there are a couple quick fixes for this listed above similar to what you have suggested. I think this issue has morphed into a bigger conversation over time. I was able to get things working with something similar to your suggestion.

I'm leaving this issue open so people can find it, and adding a note to the docs in lieu of actually solving it.

Guys. I’m leaving it open. Until the polyfill is no longer necessary.

commented

Caution, I installed ng2-dragula and got this error, so I uninstalled but the error remained...
Good I pushed my code so I could reset my branch.

add this line in polyfills.ts

(window as any).global = window;

Any update on this? I am still getting this after upgrading to Angular 15 and I have the (window as any).global = window; line in polyfills.ts

add this line in AppComponent constructor solved the problem in angular 16
window['global'] = window;