Javascript 加载模块node.js的最佳方法
我的项目有很多文件夹,我经常以以下方式在node.js中加载我自己的模块:Javascript 加载模块node.js的最佳方法,javascript,node.js,express,Javascript,Node.js,Express,我的项目有很多文件夹,我经常以以下方式在node.js中加载我自己的模块: var request = require("request"), config = require("../../../modules/config"), urls = require("../../../modules/urls"); var request = require("request"), config = require("config"), urls
var request = require("request"),
config = require("../../../modules/config"),
urls = require("../../../modules/urls");
var request = require("request"),
config = require("config"),
urls = require("urls");
我有时会移动文件夹,路径也会改变,因此我需要手动调整。/
零件
我不想将模块移动到node_modules文件夹中,但我希望通过以下方式加载模块:
var request = require("request"),
config = require("../../../modules/config"),
urls = require("../../../modules/urls");
var request = require("request"),
config = require("config"),
urls = require("urls");
或
我的选择是什么?根据某些条件,您可以尝试执行以下操作
- 如果脚本是专门为您的应用程序编写的,这意味着它不会与任何其他应用程序一起工作,脚本没有任何依赖项将它们放在
目录下,并尝试创建一个公开变量,例如模块
,并使用全局.basepath
来构造文件路径并需要它。您还可以在需要模块变量后在主脚本中插入模块变量应用程序李>path.join
main.js
var config = require('modules/config.js')(_,mongoose,app);
module.exports=function(_,mongoose,app){
return function(){
// _,mongoose,app
this.loadConfigVariable..
}
}
modules/config.js
var config = require('modules/config.js')(_,mongoose,app);
module.exports=function(_,mongoose,app){
return function(){
// _,mongoose,app
this.loadConfigVariable..
}
}
- 如果脚本不是一个具有单独测试的文件,则需要其他供应商模块才能执行,然后创建单个节点模块并将其发布到注册表中,以便于安装主应用程序。
与express一样,还有主应用程序
,还有express
使用的模块,如express
,这些模块又有自己的依赖关系express validation
var config = require('my_modules/config');
var urls = require('my_modules/urls');
新答案: 相对路径似乎是最简单的选择,毕竟,它允许您从任何位置运行脚本
var config = require("../../config");
旧答案:
我发现,虽然不理想,但也可以使用process.cwd()
或者,如果process.cwd()在主js文件中设置为全局变量
global.cwd = process.cwd();
然后
你可以运行自己的私有npm并在那里注册。。。?这些模块大多是特定于项目的。如果文件夹中的模块需要文件夹层次结构中较高的模块,这是一个强烈的信号,表明您的代码有味道,应该进行重构,以减少模块之间的耦合。只需将其放在
node\u modules
中,这没什么错,我不想将我的模块与供应商模块放在一个地方,我忽略.gitignore文件中的node_modules文件夹