6 ms·
NodeJS Starter – Simple project setup using best practices and modules
- pspeter3 13y agoThe directory structure seems rather arbitrary and the use of components on the server seems weird. Also why are you using a Makefile instead of the npm scripts and grunt? Also there is no explanation of why this is an example of the best practices in the industry
- cdouce 13y agoNo need of Grunt at all. There is no need of npm scripts either, besides maybe for testing. Tests and explanation comming soon. I appreciate your feedback!
- pspeter3 13y agoI feel like Grunt and npm scripts are the standard way people expect the build tools in node to work. You're already sort of using them by having npm test fork off to your Makefile
- lsllc 13y agoLooks like the directory structure (in lib/...) is related to the use of component.io? [for app components]. I typically build node apps with application "modules" in an apps/{name} structure and then require them all in server.coffee. Component.io is new to me, it claims to provide an entire "bundle" of client & server side pieces, this is nice. I'll have to look into that today ... Definitely, an explanation of these "best practices" would be nice.
- pspeter3 13y agoI know that most people tend to organize their code with assets for client side assets, lib for code, test for all of their testing code and index.js as the root of the application. Including the node binaries in bin is also a nice touch. I just have never seen the component usage before and definitely need to look it up as well. EDIT: The component todo example seems to use components on the client side but not the server side https://github.com/component/todo https://github.com/component/todo
- cdouce 13y agoTake a look at the branches it has. Also look at component.io website code. ;)
- cdouce 13y ago`./lib` is for modules and components. There is no difference for us. You can share to client simple modules by adding a component.json file to that directory. And vice-versa by just exposing an index.js file. You can require('regexps') for example, from both server and client and work with same definitions without repeating code. So, `./lib` turns into a nice and sharable space. This is a construction from practices we've found on the way... component.io website is one of them.
- mradmin 13y agoWhat's up with the line-length limit on these comments? https://raw.github.com/gravityonmars/nodejs-starter/master/index.js https://raw.github.com/gravityonmars/nodejs-starter/master/i...
- fpp 13y agoFor comparison have a look at Strongloop's starter project (production ready) http://strongloop.com/products http://strongloop.com/products