Я пытаюсь передать аргументы командной строки во время работы сервера, но не могу получить эти элементы в моем скрипте. Я объясняю свой код ниже.
init(cb) {
const config_file_path = this._getCLIConfigFile();
console.log('file path', config_file_path);
if(!fs.existsSync(config_file_path)) {
console.log(new Error(`Config file not found`));
return cb ? cb(false) : false;
}
const env_configs = JSON.parse(fs.readFileSync(config_file_path));
if(_.isEmpty(env_configs)) {
console.log(new Error(`Configs not found`));
return cb ? cb(false) : false;
}
_.set(env_configs, 'mongodebug', this._getMongoDebugEnv());
process.env['edqart_env'] = JSON.stringify(env_configs);
return cb ? cb(true) : env_configs;
}
_getCLIConfigFile() {
const cli_args = this._getCLIArgs();
return _.get(cli_args, 'config');
}
_getCLIArgs() {
const cli_args = process.argv.slice(2),
args = {}
console.log('args',cli_args);
_.each(cli_args, (arg) => {
const arg_splits = _.compact(arg.split('='));
if(arg_splits.length === 2 && arg_splits[0] && arg_splits[1]) {
args[arg_splits[0].toLowerCase()] = arg_splits[1].trim();
}
});
return args;
}
Когда я выполняю команду npm start --config="/home/anil/Desktop/new/EdQart_Project/local/configs_local.json
, она выдает следующую ошибку.
Ошибка ::
args []
file path undefined
Error: Config file not found
at EdQartEnvironmentUtil.init (/home/anil/Desktop/new/EdQart_Project/local/edqart-store-setup-api/src/utils/environment.util.js:19:16)
Здесь мне нужно выбрать путь к файлу, используя аргументы командной строки.