Невозможно получить аргументы командной строки, используя Node.js - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь передать аргументы командной строки во время работы сервера, но не могу получить эти элементы в моем скрипте. Я объясняю свой код ниже.

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)

Здесь мне нужно выбрать путь к файлу, используя аргументы командной строки.

...