节点/快速文件路径

时间:2017-09-06 19:11:29

标签: javascript node.js express

我有一个使用与此类似的结构构建的Node / Express应用程序:

/lib
  coolStuff.js
/routes
  funRoute.js
/views
  sickView.hbs
app.js

到现在为止,当我想在/lib/coolStuff.js中引用/routes/funRoute.js中的内容时,我会写下这样的内容:

var coolStuff = require('../lib/coolStuff');

我很确定在这种情况下相对路径是个坏主意。引用该文件的更好方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用名为 module-alias

的npm软件包。

npm install module-alias --save

然后在index.js文件(假设它是启动文件)中,按以下方式配置模块别名:

const moduleAlias = require('module-alias');
moduleAlias.addAliases({
  '@': __dirname,  //Your project root
  '@lib': __dirname + '/lib', //Path to your lib folder
  '@routes': __dirname + '/routes' //Path to your routes folder
});

然后在其余的应用程序中,只需按以下方式加载模块:

const routes = require('@routes');
const coolStuff = require('@lib/coolStuff');
const app = require('@/app');

相对路由很糟糕,原因之一是,如果移动文件,则需要更改所需路径,否则代码将中断。

此方法的一大挫折是代码自动完成将无法工作,因为您的IDE将无法知道如何找到导入的程序包。

如果您可以不使用代码自动补全功能,那简直就是无法做到。