require is not defined error with browserify

I personally prefer to keep my library code and application code seperate. So i also create something like a bundle.js and a script.js.

there is a simple workaround, that makes this work. This is somewhere in my browserify-file:

window.require = require;

this will expose require into the "global" namespace. You can then require all you want from your script.js.

You do give up ONE advantage, though: you'll have to include all the required libraries in your browserify file. You don't get the luxury of it finding all your dependencies, then!

I fully expect people to cry "dirty hack" or "this is not how it's meant to be". Yes, maybe. But I want those files seperate. And as long as i don't include anything else that is called "require", i'll be fine, thank you very much.

Sometimes one global can make all the difference.


The "require" function is only available in the "bundle.js" script context. Browserify will take all the script files necessary and put them into the "bundle.js" file, so you should only have to include "bundle.js" in the HTML file, not the "script.js" file.