如何在不提及相对文件路径的情况下要求模块

时间:2015-12-29 18:08:09

标签: javascript node.js browserify

这是一个示例文件夹结构

folder1
--lib
----app.js

folder 2
--www
----Application.js

folder2中的Application.js文件需要以下列方式从folder1获取app.js文件var app = require('../../folder1/lib/app') 然后Application.js被浏览化。

我想要实现的是将app.js放入Application.js而不提及路径.ie var app = require('app')并且不更改文件夹结构,但在浏览时它将映射实际文件,即folder1 / lib / app.js for require(' app')。

修改

我正在考虑在folder1中创建一个文件,该文件将负责浏览folder2中的代码。 例如:$ folder2> node ../folder1/build.js www / Application.js 将输出一个浏览器化的文件映射需要(' app')到folder1中的app.js

1 个答案:

答案 0 :(得分:1)

我倾向于使用app-module-path

我的文件夹结构:

index.js
app/
   lib/
     hash.js
   controllers/
     index.js
   middleware/
     auth.js

index.js

require('app-module-path').addPath(__dirname);

然后例如在controllers/index.js中,我可以这样做:

var auth = require('app/middleware/auth');
var hash = require('app/lib/hash');

这是针对nodejs的。现在,对于browserify,您可以使用aliasify

replacements: {
  "app/(\\w+)": "app/$1"
}

它使事情变得更加清洁。