Node.JS枚举统计当前文件夹和子目录下所有代码文件行数-创新互联
使用Node.JS的大多数用记事本开发,有时侯会需要统计工程代码量,然后记事本大部分没有这个功能。其实用node.js几行代码就可以实现。

var path = require('path')
var fs = require('fs')
//需要统计的文件类型,可自己删减,均小写
var codesFiles = [ '.css', '.js', '.html', '.tmpl', '.part', '.json', '.md', '.txt', '.yml', '.java', '.cs', '.c', '.h', '.cpp', '.xml', '.go', '.py' ]
var LINES = 0
var findFolder = function(srcDir, cb) {
fs.readdir(srcDir, function(err, files) {
var count = 0
var checkEnd = function() {
++count == files.length && cb && cb()
}
if (err) {
checkEnd()
return
}
files.forEach(function(file) {
var extname = path.extname(file).toLowerCase()
var srcPath = path.join(srcDir, file)
fs.stat(srcPath, function(err, stats) {
if (stats.isDirectory()) {
findFolder(srcPath, checkEnd)
} else {
if (codesFiles.indexOf(extname) < 0) {
checkEnd()
return
}
fs.readFile(srcPath, function(err, data) {
if (err) {
checkEnd()
return
}
var lines = data.toString().split('\n')
LINES += lines.length
console.log(srcPath, lines.length)
checkEnd()
})
}
})
})
//为空时直接回调
files.length === 0 && cb && cb()
})
}
findFolder('./', function() {
console.log('LINES:', LINES)
})另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:Node.JS枚举统计当前文件夹和子目录下所有代码文件行数-创新互联
本文地址:http://www.jxjierui.cn/article/cdcidh.html


咨询
建站咨询
