Skip to content

找不到 app.config.js 的问题 #5

@Lucifier129

Description

@Lucifier129

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions