Node module system is locked and is never going to change anyway. Think 
about it as a static linking system and nothing more. Even with hacks like 
you suggested it is still insufficient for dynamic linking. 

The advice is: 
1) Do not rely on require system if you want runtime configuration,  design 
modules in advance in such way that they could be configured if needed.
2) For app level components use  custom container. (That seems to be the 
most common use case where you actually need such configuration)
3) If there is a third party module involved consider to just monkey patch 
it's dependency.

In addition you might find the following modules useful 
easy-app<https://github.com/eldargab/easy-app>
, fake-fs <https://github.com/eldargab/node-fake-fs> 

On Sunday, January 20, 2013 8:15:13 AM UTC+4, Athan Clark wrote:
>
> Hello everyone. I'd like to make unit testing a practice difficult to 
> evade in Node.js. One of the requirements, though, is that you need to be 
> able to test a module's functionality independently of it's dependencies 
> (say that 10 times fast!). My idea is to make node more flexible in the 
> directories it chooses to look for node modules by providing an alternative 
> "mode" for it to look in - ie if *NODE_MODE* is set to "test", then npm 
> will first try to look in ./test_node_modules for a package before looking 
> in ./node_modules. That way we can provide *alternative *modules for a 
> package - ie mock ones. Or if you were trying to make a package that was 
> compatible with similar modules, you could have a 3rd party testing 
> package, like a simple blog, that uses the similar package in one mode, 
> then your package in another.
>
> Imagine being able to do a *`npm run-scripts test --deep`*, and then see 
> each and every module complete a unit test before progressively walking up 
> the dependance tree making scenario tests along the way. It makes my 
> continuous integration senses salivate.
>
> What do you all think? Could someone could direct me to where/how npm / 
> node implements `require();`? Where should I start?
>
> Thanks in advance!!
>

-- 
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 nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to