news 2026/3/2 12:33:28

Node.js代码统计神器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Node.js代码统计神器

统计代码行数

使用Node.js编写一个脚本,统计指定目录下所有文件的代码行数。

const fs = require('fs'); const path = require('path'); function countLinesInFile(filePath) { const content = fs.readFileSync(filePath, 'utf-8'); return content.split('\n').length; } function countLinesInDirectory(directory, extensions = ['.js']) { let totalLines = 0; function traverse(dir) { const files = fs.readdirSync(dir); files.forEach(file => { const fullPath = path.join(dir, file); const stat = fs.statSync(fullPath); if (stat.isDirectory()) { traverse(fullPath); } else if (extensions.includes(path.extname(file))) { const lines = countLinesInFile(fullPath); console.log(`${fullPath}: ${lines} lines`); totalLines += lines; } }); } traverse(directory); return totalLines; } const targetDir = process.argv[2] || '.'; const total = countLinesInDirectory(targetDir); console.log(`Total lines: ${total}`);

统计代码字符数

统计指定文件中各种字符的出现频率。

function countCharacters(text) { const result = {}; for (const char of text) { result[char] = (result[char] || 0) + 1; } return Object.entries(result) .sort((a, b) => b[1] - a[1]) .reduce((acc, [key, value]) => { acc[key] = value; return acc; }, {}); } const text = fs.readFileSync('example.js', 'utf-8'); console.log(countCharacters(text));

统计代码复杂度

使用简单的复杂度计算方法统计代码中的条件语句数量。

function calculateComplexity(code) { const complexityPatterns = [ /if\s*\(/g, /for\s*\(/g, /while\s*\(/g, /case\s+/g, /\?\s*.+:/g ]; return complexityPatterns.reduce((total, pattern) => { const matches = code.match(pattern) || []; return total + matches.length; }, 0); } const code = fs.readFileSync('example.js', 'utf-8'); console.log(`Code complexity: ${calculateComplexity(code)}`);

统计代码注释比例

计算代码中注释占总代码量的比例。

function calculateCommentRatio(code) { const totalLines = code.split('\n').length; const commentLines = code.split('\n').filter(line => { return line.trim().startsWith('//') || line.includes('/*'); }).length; return (commentLines / totalLines * 100).toFixed(2); } const code = fs.readFileSync('example.js', 'utf-8'); console.log(`Comment ratio: ${calculateCommentRatio(code)}%`);

编程语言C++ziqihao.cn++c语言的魅力
编程语言C++swsci.cn++c语言的魅力

编程语言C++www.ziqihao.cn++c语言的魅力
编程语言C++www.swsci.cn++c语言的魅力

编程语言C++www.share.ziqihao.cn++c语言的魅力
编程语言C++www.share.swsci.cn++c语言的魅力

编程语言C++www.blog.ziqihao.cn++c语言的魅力
编程语言C++www.blog.swsci.cn++c语言的魅力

编程语言C++read.share.ziqihao.cn++c语言的魅力
编程语言C++read.share.swsci.cn++c语言的魅力

这些代码片段可以根据实际需求进行组合或修改,用于不同的代码统计场景。使用时需要注意文件编码和路径处理等问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/2 17:44:54

AI多语言混合输入的语种识别测试:测试工程师的破壁之战

‌一、测试背景与行业痛点‌ 随着大语言模型(LLM)在客服系统、跨境应用、智能翻译、语音交互等场景的深度落地,‌多语言混合输入‌已成为真实用户行为的常态。例如: 用户在中文对话中插入英文产品名:“这款 ‌iPhone…

作者头像 李华
网站建设 2026/2/27 14:25:14

【课程设计/毕业设计】基于大数据+django+mysql的学习资源推送系统的设计与实现基于Django+大数据的学习资源推送系统【附源码、数据库、万字文档】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华
网站建设 2026/3/2 22:24:39

大数据毕设项目:基于django的蔬菜销售分析与预测可视化系统(源码+文档,讲解、调试运行,定制等)

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华
网站建设 2026/3/2 14:50:48

数据即服务在大数据领域的创新应用与实践

数据即服务(DaaS):大数据时代的服务化革命与实践指南 一、引言:为什么说DaaS是大数据落地的关键? 1.1 痛点:你是否也在经历“数据困境”? 作为大数据从业者,你可能遇到过这样的场景&…

作者头像 李华