uni-app 统计某一个项目下的代码行数

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app 统计某一个项目下的代码行数

统计某项目下 所有文件的代码行数、文件个数, 不需要统计单词数量

5 回复

这个也凉凉了么 /捂脸


没时间写这个插件,提供下大概的思路。写一个nodejs,然后配上HBuilderX的外部命令,对一个目录点右键,选这个外部命令,计算这个目录下的所有代码文件的行数。

文件个数,一行命令搞定: ls -lR | grep “^-”| wc -l

仰望高端大神。。。

在统计 uni-app 项目下的代码行数时,我们可以编写一个简单的脚本来遍历项目目录并累加代码文件的行数。下面是一个使用 Node.js 编写的脚本示例,该脚本会统计指定 uni-app 项目根目录下的所有 .vue.js.ts.json.css 文件的代码行数。

首先,确保你已经安装了 Node.js。然后,你可以创建一个新的 JavaScript 文件(例如 countLines.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 traverseDirectory(directory) {
    let totalLines = 0;
    const files = fs.readdirSync(directory);

    files.forEach(file => {
        const fullPath = path.join(directory, file);
        const stats = fs.statSync(fullPath);

        if (stats.isDirectory()) {
            totalLines += traverseDirectory(fullPath);
        } else if (/\.(vue|js|ts|json|css)$/.test(file)) {
            totalLines += countLinesInFile(fullPath);
        }
    });

    return totalLines;
}

// 指定你的uni-app项目根目录
const projectRoot = path.join(__dirname, 'path_to_your_uni_app_project');

const totalLines = traverseDirectory(projectRoot);
console.log(`Total lines of code in the project: ${totalLines}`);

在这个脚本中:

  1. countLinesInFile 函数读取文件内容并返回行数。
  2. traverseDirectory 函数递归遍历目录,累加符合条件的文件的行数。
  3. 使用正则表达式 /\.(vue|js|ts|json|css)$/ 来匹配需要统计的文件类型。
  4. projectRoot 变量应设置为你实际的 uni-app 项目根目录路径。

保存脚本后,在命令行中运行:

node countLines.js

该脚本将输出指定 uni-app 项目中所有 .vue.js.ts.json.css 文件的总行数。

注意:

  • 如果你的项目使用了其他类型的文件(例如 .scss.less 等),你需要修改正则表达式以包含这些文件扩展名。
  • 脚本没有处理符号链接或其他特殊情况,可能需要根据实际需求进行调整。
回到顶部