Как сделать аргумент обязательным, основываясь на ответе другого аргумента?

Поскольку замена не работала для меня, я создал простой пакет npm replace-in-file , чтобы быстро заменить текст в одном или нескольких файлах. Это частично основано на ответе @ asgoth.

Edit (3 октября 2016 г.): пакет теперь поддерживает обещания и глобусы, а инструкции по использованию были обновлены, чтобы отразить это.

Изменить ( 16 марта 2018 г.): этот пакет собрал более 100 тыс. Ежемесячных загрузок и был расширен дополнительными функциями, а также инструментом CLI.

Установка:

npm install replace-in-file

Требовать модуль

const replace = require('replace-in-file');

Укажите опции замены

const options = {

  //Single file
  files: 'path/to/file',

  //Multiple files
  files: [
    'path/to/file',
    'path/to/other/file',
  ],

  //Glob(s) 
  files: [
    'path/to/files/*.html',
    'another/**/*.path',
  ],

  //Replacement to make (string or regex) 
  from: /Find me/g,
  to: 'Replacement',
};

Асинхронная замена с обещаниями:

replace(options)
  .then(changedFiles => {
    console.log('Modified files:', changedFiles.join(', '));
  })
  .catch(error => {
    console.error('Error occurred:', error);
  });

Асинхронная замена с обратным вызовом:

replace(options, (error, changedFiles) => {
  if (error) {
    return console.error('Error occurred:', error);
  }
  console.log('Modified files:', changedFiles.join(', '));
});

Синхронная замена:

try {
  let changedFiles = replace.sync(options);
  console.log('Modified files:', changedFiles.join(', '));
}
catch (error) {
  console.error('Error occurred:', error);
}

0
задан Jimmy.D 18 January 2019 в 15:45
поделиться