On Apr 22, 2014, at 4:08 AM, Chetan Dhembre <[email protected]> wrote:
>    I recently create module. Which help in avoiding mess of relative path 
> while including local modules.I post module link and ask suggestion on 
> #node.js irc center many people think it is basically wrong to have nested 
> directory structure ( i also know it is dirty).


I am puzzled by why anyone would think nested directory structure is wrong or 
dirty. Did they explain why this is a bad idea? I'd say quite the opposite (for 
the same reasons why hierarchical directories exist in the operating system 
:-)).


> So i was searching around in some big project in node.js . I come across  
> ghost which is fairly large node.js project. I end up looking their directory 
> structure which is more or less nested .. i find following code 
> 
> var fs = require('fs'),
>     config = require('../../server/config')
> 
> which requiring local module using relative path and there is no second 
> thought is this is error prone.
> 
> My question how does other large project manage code .. because there so many 
> small piece code which are closely related to project so can not publish on 
> npm and creating that number or private repo is not financially feasible ( 
> talking about github) 


I use NODE_PATH (in Unix, not sure what the equivalent is in Windows) to remove 
the ".." parts in the require() path. There used to be a way to specify this 
inline in the code, using require.paths (IIRC), which was really nice, but for 
some reason (that I now forget) that was removed. Something like this:

======

/home/ravi/code/projectX/app.js:

var fs = require('fs'),
    config = require('server/config');

$ daemon ..... --env="NODE_PATH=/home/ravi/code/projectX/server:...other local 
module paths..." /home/ravi/code/projectX/app.js

======

This of course still uses a relative path ('server/config') but that I consider 
a feature that exposes the internal hierarchy of my code.

Note: I am using 'daemon' to daemonise app.js (so it runs long after I have 
left the shell). There are other ways to do that and you may not need that at 
all, and might instead prefer writing a shell wrapper that sets NODE_PATH and 
then runs app.js.

Cheers,

        --ravi

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to