自动删除javascript中的logging语句

原文地址:http://www.javaarch.net/jiagoushi/744.htm

自动删除javascript中的logging语句

一般在测试环境中我们会加上很多console.log来帮助调试,但是发布到生产环境肯定是要删除掉的。
我们可以使用groundskeeper (GitHub: github.com/Couto/groundskeeper)(用node.js写) 这个工具
来删除javascript中的console.log语句。

比如我们有下面这段js:

	function filter(list, age) {
	  var result = [];
	  list.forEach(function (person) {
		if (person.name && person.age > age) {
		  console.log('including', person.name);
		  result.push(person);
		}
	  });
	  return result;
	}
	
我们安装完groundskeeper之后,使用

	groundskeeper < filter-debug.js > filter.js
	
那上面那段js变成:只是把console.log变成一个空行,方便svn的比较

	function filter(list, age) {
	  var result = [];
	  list.forEach(function (person) {
		if (person.name && person.age > age) {
	 
		  result.push(person);
		}
	  });
	  return result;
	}
	
这个工具还可以跟git pre-commit hook( http://ariya.ofilabs.com/2012/03/git-pre-commit-hook-and-smoke-testing.html)
集成,那么就不需要人工操作了,只要git commit的时候任何js文件就会过滤掉。

	files=$(git diff-index --name-only --diff-filter=ACM HEAD | grep -P '\.js$')
	for file in $files; do
	  groundskeeper < $file > $file.tmp && mv $file.tmp $file
	done

相关推荐