Grunt, Require, Node, OMG where do I start

I'm AS3/Flex developer moving to JavaScript. I think i have a good understanding of OOP and many programming paradigms (IoC, MVC, MVCS, etc.). I have decided to make a simple application using JavaScript (Angular.JS and Backbone.JS versions) as well as HTML5 & CSS3. Where I am getting hung up is the many different approaches to doing class based programming in JS.

Most of the examples (esp. true with Angular & Backbone) lump many classes? into a single .js file much like what a Flash as2 guy would have done 5 or so years ago. This doesn't jibe well with my OOP background as I like encapsulation (and having a file per class kinda does it for you).

I have then seen a few examples of an Asteroids game done in js that KINDA follows what I am looking for, however it makes use of things like Grunt and Require, both of which I have read up and still having to reread everything 10 times to get an idea of what it does.

So I'm hoping somebody might be able to point me in the right direction as to a) making sense of HOW you do OOP more like Flex/Flash/AS3/Java/etc. and b) understanding how things like Grunt & Require fit into this big picture.

I would generally recommend to avoid biting over too much at once. OOP and smart design patterns are not tied to specific frameworks, so you might get a better understanding if you attempt to learn more about how these concepts are implemented in pure JavaScript. OOP works differently in JavaScript than in "classical" OO programming languages. Classes don't exist in JavaScript , so any use of it is an abstraction of the native prototype based OO style of JavaScript. I would recommend that you start reading up on JavaScript and prototyping to understand the nuts and bolts of OOP in JavaScript