3

I have some experience with JavaScript but none whatsoever with JavaScript project management and tooling. I'm looking at using node and AMD but am not exactly sure what they are used for and am having trouble wading through the documentation.

Here are some of the specific points I'm stuck on:

Node

  • my impression is that it's intended for server-side JavaScript. Can it also do builds for client-side projects?
  • if it can do builds, can it build projects (+ dependencies) into a single file for client-side deployment?
  • can its build process integrate tools like jslint and grunt?

AMD

  • is it a problem that it apparently doesn't play nice with other tools? (not trying to sling mud here, just don't really understand the context of this issue)
  • where does AMD run -- in the web browser? If so, does that mean I need another tool to deal with actually getting and managing the 3rd-party libraries, running jslint, running tests, and building the project?
Community
  • 1
  • 1
Matt Fenwick
  • 48,199
  • 22
  • 128
  • 192
  • 1
    this is a [Shark vs Gorilla](http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/) question and until a very specific question about one or the other it needs to stay closed. Also the question shows a complete lack of comprehension of both technologies by the OP. Making it *not a real question* as well! Anything that is X vs Y is off topic, as it is asking for opinion and debate. –  Jan 23 '13 at 17:44
  • @JarrodRoberson this is not a shark vs. gorilla question; sorry if it seemed like it was. That node isn't about doing builds is something that I didn't know -- which is why I asked the question. – Matt Fenwick Jan 23 '13 at 17:45
  • 2
    @JarrodRoberson `the question shows a complete lack of comprehension of both technologies by the OP` this is true -- hence the question. – Matt Fenwick Jan 23 '13 at 17:46
  • 1
    The question seems sufficiently focused now to be answerable. Just clarify the OP's points. – Robert Harvey Jan 23 '13 at 17:46

1 Answers1

4

These projects aren't related.

node.js is a JavaScript interpreter just like a web browser. It's a server technology and can't run on a client. Specifically it is a wrapper set of libraries that add IO support, to file or network, so that you can read from disk or respond to TCP (and therefore TCP/IP aka HTTP(S) or FTP) requests. Otherwise, it's just javascript like you would write in the browser. You can use it to run script from the command line or build a web server.

It can be used to "build" projects from the command line since it's able to be used like a scripting language in a shell environment (it even responds to #! command routing).

AMD is a tool to manage dependencies for JavaScript projects. You can use it load dependencies dynamically and even asynchronously (hence the name). AMD will work in the browser and in node.js (but node.js already includes a technology to load JavaScript dynamically, so it won't be really useful).

jcolebrand
  • 15,889
  • 12
  • 75
  • 121
Aaron Digulla
  • 321,842
  • 108
  • 597
  • 820