@amir-bagjani/loc-counter
v0.1.0
Published
CLI to count lines of code in frontend projects
Maintainers
Readme
loc-counter
A simple CLI tool written in TypeScript that counts lines of code in your project.
Designed for frontend projects, it ignores non-code files (Markdown, images, lockfiles, etc.) and provides per-extension breakdowns.
✨ Features
- Count total lines, non-empty lines, and comment-only lines
- Per-extension statistics
- Top N largest files by line count
- JSON or text output
- Optional file count mode
- Ignores common non-code files (
.md,.json, images, etc.)
📦 Installation
# install globally
npm install -g @amir-bagjani/loc-counter
# or use with npx (no install required)
npx @amir-bagjani/loc-counter ./my-project🚀 Usage
loc-counter <path> [options]Examples
# Count lines in current folder
loc-counter .
# Show top 5 largest files
loc-counter ./src --top 5
# Output results in JSON format
loc-counter ./app --format json
⚙️ Options
| Flag | Description | Default |
|-------------------|-----------------------------------------------------------------------------|---------|
| --top <N> | Show the N largest files by line count | 10 |
| --format <type> | Output format: text or json | text |
📊 Example Output
Text format
LOC Counter report
Target: ./src
Files counted: 124
Total lines: 13842
Non-empty lines: 11239
Comment-only lines (heuristic): 2123
Per-extension breakdown:
ts files: 34 lines: 7200 non-empty: 5800 comments: 900
js files: 20 lines: 3000 non-empty: 2500 comments: 200
Top largest files:
1024 lines src/App.tsx
900 lines src/components/BigComponent.tsxJSON format
{
"target": "./src",
"total": {
"lines": 13842,
"nonEmpty": 11239,
"comments": 2123
},
"perExtension": {
".ts": { "files": 34, "lines": 7200, "nonEmpty": 5800, "comments": 900 },
".js": { "files": 20, "lines": 3000, "nonEmpty": 2500, "comments": 200 }
},
"topLargest": [
{ "file": "src/App.tsx", "stats": { "lines": 1024, "nonEmpty": 800, "comments": 120, "extension": ".ts" } }
]
}🛠 Development
Clone and build locally:
git clone https://github.com/amir-bagjani/loc-counter.git
cd loc-counter
npm install
npm run buildRun with ts-node (development mode):
npx ts-node src/loc-counter.ts ./my-project🤝 Contributing
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
📄 License
MIT © Amir Bagjani


