en / ru

NodeJS - удаление помеченных строк

Пример скрипта на NodeJS для удаления из файла строк, помеченных особыми метками (например, комментариями). Будут удалены все строки, где встречается указанная "метка".

Скрипт будет полезен, когда Вы хотите иметь несколько версий кода/файла: черновую и чистую. Например, в полной (черновой) версии у Вас могут быть функции для дебага/разработки и прочие пометки, которые необходимо убрать из релизной версии (чистой, финальной).

Переменные в коде:
- fromFile название исходного/полного файла
- toFile имя нового файла без помеченных строк
- myMark текстовая метка для "черновых" строк, например - ввиде комментариев.

var fs = require('fs');
var fromFile = 'sample.js';
var toFile = 'sample_new.js';
var myMark = '/*dev_mode_only*/';

fs.readFile(fromFile, 'utf8', function(err, data){
	if(err){ return; }
	var arr = data.split('\n').filter(function(ln){
		return ln.indexOf(myMark) === -1;
	});
	fs.writeFile(toFile, arr.join('\n'), function(err){
		if(err){ throw err;}
		console.log('Saved!');
	});
});

Выполнение с помощью Grunt

Если вы используете Grunt, можно воспользоваться grunt-execute. Есть возможность передавать параметры вызываемому файлу, например:

grunt.loadNpmTasks('grunt-execute');
grunt.config('execute', {
  options: {
    args: ['sample.js', '_sample.js', '/*dev_mode_only*/']
  },
  main: {
    src: ['script.js']
  }
});

В этом случае необходимо обновить NodeJS код, чтобы он принимал аргументы:

var fromFile = process.argv[2];
var toFile = process.argv[3];
var myMark = process.argv[4]';