Search code examples
javascriptbatman.js

Batman.js new app issue


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.


Solution

  • There were a lot of changes between 0.9.0 and 0.10.0 and removing global was 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 camelize on 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