一个交互式命令行工具,用于批量移除前端项目中的注释,支持多种文件类型,并提供备份、试运行、彩色输出、配置记忆等实用功能。
中文 | English
- 交互式配置:启动后通过问答形式选择语言、目录、文件类型等,无需记忆命令行参数。
- 多语言支持:内置中文和英文界面,自动检测系统语言,也可手动切换。
- 精准注释移除:使用状态机逐字符扫描,准确识别并移除 JS/TS 中的
//和/* */注释,同时保护字符串、模板字符串、正则表达式和://协议。 - 广泛的文件类型:支持
.js、.ts、.jsx、.tsx、.vue、.css、.scss、.less、.html、.htm。 - 智能内联处理:自动清理 HTML 中
<script>内的 JS 注释和<style>内的 CSS 注释;Vue 单文件组件分别处理<template>、<script>、<style>中的注释。 - 备份机制:修改前自动为每个文件创建
.bak备份,方便恢复。 - 试运行模式:预览将要修改的文件及统计信息,不实际写入。
- 排除模式:支持通配符(如
*.min.js)跳过特定文件。 - 详细统计:显示每个文件移除的行数和节省的字节数,并汇总总计。
- 日志记录:所有操作写入
strip_comments.log,包含时间戳和详细记录。 - 配置保存:自动保存上次的交互选择到
~/.strip_comments_config.json,下次运行自动加载为默认值。 - 彩色输出:使用 ANSI 颜色区分状态(成功/错误/警告/提示),支持 Windows(自动启用虚拟终端)。
- Python 3.6 或更高版本(无需安装额外依赖)
将本仓库中的 strip_comments.py 保存到本地。
在终端中执行:
python strip_comments.py按提示依次输入:
- 选择语言(1=英文,2=中文,直接回车自动识别)
- 项目目录(直接回车使用当前目录)
- 要处理的文件扩展名(直接回车处理全部默认类型)
- 额外跳过的目录(如
dist, build,无则回车) - 排除的文件模式(如
*.min.js, *bundle*.js,无则回车) - 是否创建备份(默认 y)
- 是否试运行(默认 n)
- 是否显示详细信息(默认 n)
等待处理完成,即可看到修改统计和节省效果。
如果需要非交互式调用,可以修改脚本内部变量,或在交互时快速回车使用默认值。
- 脚本会直接修改原文件,请确保备份或使用试运行模式预览。
- 部分特殊语法(如嵌套正则或特殊字符串)可能存在极少数误判,建议先用试运行模式检查。
- 处理前建议提交 Git 版本,方便对比变更。
本项目采用 MIT 许可证,详情见 许可证 文件。
欢迎提交 Issue 或 Pull Request,帮助改进工具。