<div dir="ltr">Hi,<div><br></div><div>i've now been using nodejs in debian for a while, deploying debian packages</div><div>using nodejs, and also deploying user packages which do not want to fall back</div><div>on system-installed modules (because of subtle discrepancies in the way</div><div>they're crafted).</div><div>Usually it goes well, but when it gets bad, it's really hard to debug that the cause</div><div>of the issue comes from a system-installed node module, when you believed you</div><div>have been using a local node_modules-installed package.</div><div>That's why i really want to offer an explicit way of choosing how modules are</div><div>resolved. I believe the nodejs package.json semantics are already enough to</div><div>propose a straightforward and reliable default behavior.</div><div>Something like:</div><div>- when node script doing "require('thatmodule')" is run from /usr/share or /usr/lib*,</div><div>only allow system-installed packages</div><div>- when node script is run from elsewhere (and has a node_modules directory that is</div><div>not the system path), stick to the standard upstream-designed node_modules resolution:</div><div>never ever use system-installed modules. That doesn't forbid using them, it just requires</div><div>an extra symlink if one really wants to.</div><div><br></div><div>Please ±1</div><font color="#888888"><div><br></div><div>Jérémy</div></font></div>