不再是返回一个配置对象,而是返回一个函数,并且接受一个原始配置对象作为参数。

This commit is contained in:
陆柯 2021-01-26 20:01:42 +08:00
parent 7e3e194f6c
commit 563a069bd5

View File

@ -3,8 +3,9 @@ const path = require('path')
const commander = require('commander') const commander = require('commander')
const deepmerge = require('deepmerge') const deepmerge = require('deepmerge')
module.exports = (function () { module.exports = function (rawConfig) {
if (!global.SysConfig) { if (!global.SysConfig) {
global.SysConfig = rawConfig
// 不知为何必须定义成全局变量才能保证多次require只执行一次。 // 不知为何必须定义成全局变量才能保证多次require只执行一次。
console.info('★★★★★★★★ Starting System Configuration (开始系统配置:依次载入基础配置、用户配置、机密配置、命令行参数) ★★★★★★★★') console.info('★★★★★★★★ Starting System Configuration (开始系统配置:依次载入基础配置、用户配置、机密配置、命令行参数) ★★★★★★★★')
@ -17,7 +18,7 @@ module.exports = (function () {
console.info(' -- Loading Configuration Files (读取配置文件)') console.info(' -- Loading Configuration Files (读取配置文件)')
let configFile let configFile
if (fs.existsSync((configFile = path.join(process.cwd(), './ConfigBasic.js')))) { if (fs.existsSync((configFile = path.join(process.cwd(), './ConfigBasic.js')))) {
global.SysConfig = deepmerge({}, require(configFile)) global.SysConfig = deepmerge(global.SysConfig, require(configFile))
console.info(`${configFile} loaded`) console.info(`${configFile} loaded`)
} else { } else {
console.info(` Missing and omitting ${configFile}`) console.info(` Missing and omitting ${configFile}`)
@ -62,4 +63,4 @@ module.exports = (function () {
console.log('Final Configuration: ', global.SysConfig) console.log('Final Configuration: ', global.SysConfig)
console.log('######## Completed System Configuration ########') console.log('######## Completed System Configuration ########')
return global.SysConfig return global.SysConfig
})() }