-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
Hi,在部署 node.js 应用时发现,如果不在 node.js 项目文件夹里面启动,而是在外层文件夹启动 node.js 应用,将会找不到 app.config.js
文件。
错误日志:[AppConfig] No avaliable app.config.js found in /opt/tars/apps/100004256
具体原因是因为, app.config.js
的查询方式为
var appConfig={};
var lastConfigDir='';
var dirname=path.resolve(".");
while (dirname!==lastConfigDir){
try {
var config=path.resolve(dirname,'./app.config.js');
appConfig=require(config);
if (!appConfigHidden){
console.log('[AppConfig] Load config from '+config);
}
break;
}catch (e){
if (!appConfigHidden){
console.log('[AppConfig] No avaliable app.config.js found in '+dirname);
}
lastConfigDir=dirname;
dirname=path.dirname(lastConfigDir);
}
}
其中,var dirname=path.resolve(".");
默认以 process.cwd()
node.js 的启动目录为基准,一层层往外找父目录。
如果改成 var dirname= __dirname;
,将以 appConfig.js 文件所在的目录往上找,通常该文件在 node_modules
文件夹 里,所以应该会在 node.js 项目的文件夹内,此时不管 process.cwd()
指向哪个目录,都不会影响 app.config.js
的查找方式。
Metadata
Metadata
Assignees
Labels
No labels