如何在nodejs中有path别名?

假设我有以下代码:

var mod1 = require('../../../../ok/mod1'); var mod2 = require('../../../info/mod2'); 

这不是像上面那么漂亮的编码,我想知道是否有一种方法来configuration根parsing器就像在nodejs中的webpack-resolve-root ?

据我所知, NODE_PATH可以用来replacenode_modules的根,但这不是我想要的。 我想要parsing器依次parsing多个文件夹。

有一个名为module-alias的npm包可以做你正在寻找的东西。

解决这个问题的最好方法是使用全局(config)容器。 在大多数情况下,你将在你的应用程序中有一个configuration文件。 在这个configuration中,你可以添加一个属性,这个属性将是一个包含文件/文件夹的所有绝对path的对象。 由于configuration文件在应用程序的开始处使用,因此您只需执行以下操作:

 var config = require("./config.js"); //config = {... , path: {"someModule": "/absolute/path/to", "someModule2": "/absolute/path/to"...}} global.CONFIG_CONTAINER = config 

稍后在您的应用程序中,您可以使用

 var myModule = require(CONFIG_CONTAINER.path.someModule) // + concat if you are looking for a file 

如果你有一些复杂的path,你需要一个更dynamic的系统,你总是可以在configuration中实现一个函数,为你build立path。 (config.makePath = function(){…})这应该照顾它简而言之。