I’ve repeated steps from batman.js readme:
npm install -g batman
batman new mj
cd mj
batman server
And got this in Firebug trying to open localhost:1047
global is not defined
Mj.run();
localhost:1047 (line 52)
Mj.global is not a function
Mj.global(true);
mj.js (line 15)
Mj is undefined
Mj.run();
Did I missed something or should I open issue? Googling batman.js global is not defined gives no relevant results…
As it was pointed by user341180, problem is about node.js version. Have anybody patch for latest versions, or downgrade is the most wise way to deal with batman today?
Hmmm… In README.md it is stated that you’ll need to install node.js (0.4.x for now, 0.5.x support forthcoming), but package.json contains:
"engines": {
"node": "~>0.6.0 || ~>0.7.0"
}
So, I’m confused. I suppose, package.json has more recent update, so batman should work with my node.js v0.6.19.
My current workaround is to define root = @ befor class Mj extends Batman.App and replace @global yes with root.Mj = @ inside one.
There were a lot of changes between 0.9.0 and 0.10.0 and removing
globalwas one of them. Looks like the generator wasn’t updated and is still generating 0.9.0 code.I’m not actually sure how you’re running the generator, it throws an error about calling
camelizeon an undefined object for me.Anyway, this is definitely a 0.10.0 bug.
Added
The readme also looks like it wasn’t updated from 0.9.0
More Followup
Looks like Shopify have fixed this in edge now