nodejs – 用什么来代替require.paths?

最近的节点文档说修改require.paths是不好的做法。 我该怎么做呢?

我相信担心的是它可以在运行时反复修改,而不是只是设置。 这显然可能会造成混乱,并导致一些相当奇怪的错误。 另外,如果单个软件包修改path,结果将被全局应用,这是非常糟糕的,并且违背了节点的模块化特性。

如果您有自己的几个库path,最好的解决scheme是在启动节点之前设置NODE_PATH环境variables。 然后,节点在启动时将其选中并自动应用。

我把相关的模型保存在相同的目录或子目录中,并使用以下命令加载:

 var x = require('./mod/x'); 

如果是外部模块,我使用npm进行安装,将模块正确放置在NODE_PATH中。

我从来没有改变require.paths。

看看https://github.com/patrick-steele-idem/app-module-path-node ; 您可以将目录添加到顶层require语句 ,而不会影响子模块的path。