Skip to content

Node 项目使用文档

项目概述

本项目是一个 Node.js 应用程序,旨在统计指定目录(包括其子目录)中所有文件的代码行数、注释行数、空行数以及总行数,并能生成详细的统计报告。通过简单的命令行参数,用户可以灵活控制输出结果的格式、 是否导出结果(默认导出)、以及排除特定的目录或文件。

主要功能

  • 代码行数统计:统计指定目录中所有有效代码的行数。
  • 注释行数统计:统计指定目录中所有注释的行数。
  • 空行数统计:统计指定目录中所有的空行数。
  • 总行数统计:统计指定目录中所有行的总数。
  • 详细报告生成:生成包含编程语言分布、文件分布以及目录分布的详细报告。
  • 自定义排除:支持通过命令行参数排除特定的目录或文件。
  • 结果导出:支持将统计结果导出到默认为程序运行目录下的outputFiles文件夹中。
  • 文件类型过滤:支持指定特定的文件类型进行统计,如 .js.py 文件。

支持的文件类型

本项目支持以下常见编程语言的文件类型:

文件类型编程语言
jsJavaScript
pyPython
javaJava
xmlXML
htmlHTML
luaLua
csC#
phpPHP
cssCSS
vueVue
tsTypeScript
goGo
cC
cppC++
hC/C++ Header
ccC++
inlC++ Inline
rsRust

安装与依赖

安装 Node.js 和 npm

要运行本项目,需确保已安装 Node.js 和 npm(Node 包管理器)。如尚未安装,请从 Node.js 官方网站 下载并安装最新版本的 Node.js 和 npm。

安装项目依赖

在项目根目录下运行以下命令以安装项目依赖:

bash
npm install code-line-reporter

使用方法

在项目根目录下,通过终端运行以下命令来统计指定目录的代码行数等信息:

bash
code-line-reporter <> [--summary] [--export] [--exclude <排除目录1> <排除目录2> ...] [--type <文件类型>]

或者通过以下命令来获得帮助:

bash
code-line-reporter --help

其中:

  • <路径>:要统计的目录路径。
  • --summary:可选参数,用于控制是否简化输出结果。若指定此参数,则仅显示总计信息。
  • --export:可选参数,用于控制是否将结果导出到 output.txt 文件中。若指定此参数,则结果将被导出到该文件。(默认导出)
  • --exclude:可选参数,用于排除特定的目录或文件。可指定多个排除目录或文件,它们之间用空格分隔。
  • --type:可选参数,用于指定要统计的文件类型,如 jspy。可指定多个文件类型,它们之间用空格分隔。

示例

  • 统计当前目录下的所有文件的代码行数等信息,并简化输出结果:

    bash
    code-line-reporter --summary

- 统计指定目录(例如 F:\node_pkg)的代码行数等信息,并将结果导出到 output.txt 文件中:

bash~~ ~~code-line-reporter F:\node_pkg --export~~ ~~

  • 统计指定目录(例如 F:\node_pkg)的代码行数等信息,排除 testbuild 目录:

    bash
    code-line-reporter F:\node_pkg --exclude test build
  • 统计指定目录(例如 F:\node_pkg)的代码行数等信息,仅统计 .js.py 文件:

    bash
    code-line-reporter F:\node_pkg --type js py

    注意:上述命令中的参数和路径可根据实际情况进行调整,且参数之间可组合使用。

输出示例

  • 默认输出:不使用 --summary 参数时,程序将输出每个文件的详细统计信息,包括文件路径、编程语言、有效行数、注释行数、空行数以及总行数。此外,还会输出总计信息。
  • 简化输出:使用 --summary 参数时,程序将仅输出总计信息,包括文件数、有效行数、注释行数、空行数以及总行数。
  • 导出输出:使用 --export 参数时,程序将上述输出(默认输出或简化输出)保存到 output.txt 文件中。
  • 指定统计类型文件:使用 --type 参数时,程序将统计目录下指定文件类型。

注意事项

  • 确保指定的目录路径存在且可读。
  • 如果要排除特定的目录或文件,请确保它们的路径正确。
  • 文件类型参数(--type)支持多个文件类型,它们之间用空格分隔,无需指定文件后缀的点(.)。