如何在不提及相对文件路径的情况下要求模块
how to require a module without mentioning the relative file path
这是一个示例文件夹结构
folder1
--lib
----app.js
folder 2
--www
----Application.js
文件夹 2 中的 Application.js 文件需要文件夹 1 中的 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> 节点 ../folder1/build.js www/Application.js
将输出一个浏览器文件映射 require('app') 到文件夹 1
中的 app.js
我倾向于使用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/"
}
它让事情变得更干净。
这是一个示例文件夹结构
folder1
--lib
----app.js
folder 2
--www
----Application.js
文件夹 2 中的 Application.js 文件需要文件夹 1 中的 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> 节点 ../folder1/build.js www/Application.js 将输出一个浏览器文件映射 require('app') 到文件夹 1
中的 app.js我倾向于使用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/"
}
它让事情变得更干净。