一个对文件内容指定的正则匹配内容进行加解密的 CLI 工具。
- 🔒 支持对文件中匹配的内容进行加密/解密
- 🔍 支持自定义正则表达式或使用默认注释正则
- 📁 支持单个文件或整个文件夹的批量处理
- 🛡️ 支持多种加密算法(Base64、AES、DES)
- 👀 支持实时监听文件变化自动处理
- 🚫 智能跳过已处理内容,避免重复加密/解密
- 🏷️ 自动标识符管理 - 为已加密/解密内容添加标识符,防止重复处理
- 🌍 兼容 Windows、macOS、Linux 系统
- ⚡ 高性能的文件处理和错误处理机制
为了防止重复加密/解密,工具会自动为处理后的内容添加标识符:
- 加密标识符:
!!- 标识内容已被加密 - 解密标识符:
!- 标识内容已被解密
- 加密时:原始内容被加密后,前面会添加
!!标识符 - 解密时:加密内容被解密后,前面会添加
!标识符 - 重复保护:工具会自动检测标识符,跳过已处理的内容
- 转换处理:可以在已解密内容和已加密内容之间相互转换
<!-- 原始内容 -->
<!-- !页面组件 -->
<!-- 加密后 -->
<!-- !!6aG16Z2i57uE5Lu2 -->
<!-- 解密后 -->
<!-- !页面组件 -->npm install -g justme-cligit clone <repository-url>
cd justme-cli
npm installjustme -i <输入路径> -o <输出路径> [选项]| 参数 | 长参数 | 描述 | 必需 |
|---|---|---|---|
-i |
--input |
输入文件或文件夹路径 | ✅ |
-o |
--output |
输出文件或文件夹路径 | ✅ |
-r |
--regex |
完整正则表达式数组 | |
-n |
--normal-regex |
使用默认注释类型正则表达式 | |
-e |
--encrypt |
加密模式 | |
-d |
--decrypt |
解密模式 | |
-er |
--encrypt-rule |
加密规则 (默认: base64) | ❌ |
-dr |
--decrypt-rule |
解密规则 (默认: base64) | ❌ |
-p |
--password |
加解密密码 (AES/DES 需要) | ❌ |
-w |
--watch |
实时监听文件变化 | ❌ |
--verbose |
显示详细输出 | ❌ |
⚠️ * 必须指定-r或-n中的一个
⚠️ ** 必须指定-e或-d中的一个,不能同时指定
base64- Base64 编码(默认)aes- AES 加密(需要密码)des- DES 加密(需要密码)
- JavaScript:
.js,.ts,.jsx,.tsx - Web:
.vue,.html,.htm - 样式:
.css,.scss,.sass,.less - 后端:
.py,.rb,.php,.java,.c,.cpp,.h - 脚本:
.sh,.bash,.zsh - 配置:
.json,.xml,.yaml,.yml
输入文件 example.vue:
<template>
<!-- !页面组件 -->
<div class="page-flex page-home">
<div class="page-container"></div>
</div>
</template>
<script>
export default {
methods: {
// !复制文本
onCopy(text) {},
},
};
</script>
<style lang="scss" scoped>
/* !站地址样式 */
.station-address {
display: flex;
}
</style>加密命令:
justme -i example.vue -o output.vue -e -n输出文件 output.vue(带标识符):
<template>
<!-- !!6aG16Z2i57uE5Lu2 -->
<div class="page-flex page-home">
<div class="page-container"></div>
</div>
</template>
<script>
export default {
methods: {
// !!5aSN5Yi25paH5pys
onCopy(text) {},
},
};
</script>
<style lang="scss" scoped>
/* !!56uZ5Zyw5Z2A5qC35byP */
.station-address {
display: flex;
}
</style>justme -i output.vue -o decrypted.vue -d -n解密后的文件 decrypted.vue(带解密标识符):
<template>
<!-- !页面组件 -->
<div class="page-flex page-home">
<div class="page-container"></div>
</div>
</template>
<script>
export default {
methods: {
// !复制文本
onCopy(text) {},
},
};
</script>
<style lang="scss" scoped>
/* !站地址样式 */
.station-address {
display: flex;
}
</style>当你再次对已处理的文件进行相同操作时,工具会自动跳过:
# 第一次加密 - 处理 3 个内容
justme -i example.vue -o output.vue -e -n
# 输出: 📊 统计: 处理了 1 个文件,匹配了 3 个内容
# 第二次加密同一文件 - 跳过所有内容
justme -i output.vue -o output2.vue -e -n
# 输出: 📊 统计: 处理了 1 个文件,匹配了 0 个内容justme -i ./src -o ./dist -e -n --verbosejustme -i example.js -o output.js -e -r "/\/\/\s*TODO:\s*(.+)/g" "/\/\*\s*FIXME:\s*([^*]+)\*\//g"justme -i examples/test-input.vue -o examples/output.vue -e -er aes -p "your-secret-key"
justme -i examples/output.vue -o examples/decrypted.vue -d -dr aes -p "your-secret-key"justme -i examples/test-input.vue -o examples/output.vue -e -er des -p "your-secret-key"
justme -i examples/output.vue -o examples/decrypted.vue -d -dr des -p "your-secret-key"# 监听单个文件
justme -i examples/test-input.vue -o examples/output.vue -e -w
# 监听整个文件夹
justme -i ./src -o ./dist -e -w监听模式下,工具会:
- 首先执行一次完整处理
- 然后持续监听文件变化
- 文件修改时自动重新处理
- 按
Ctrl+C退出监听
工具内置了以下注释类型的正则表达式:
// HTML 注释 (Vue template)
/<!--\s*!([^>]+)-->/g
// JavaScript 单行注释
/\/\/\s*!(.+)/g
// CSS 注释
/\/\*\s*!([^*]+)\*\//g
// Python 注释
/#\s*!(.+)/g
// Shell 注释
/#\s*!(.+)/g注意:这些正则表达式匹配以 ! 开头的注释内容。
npm installnpm testnpm run build- ✨ 新增标识符功能,自动管理加密/解密状态
- 🛡️ 智能防重复处理,提高工具安全性
- 🔄 支持加密/解密状态之间的转换
- 📝 完善文档和示例
- 👀 新增实时监听功能
- 🚫 新增重复检测机制
- ⚡ 性能优化和错误处理改进
- 🎉 首次发布
- 🔒 基本加密/解密功能
- 📁 文件和文件夹批量处理
- 🛡️ 多种加密算法支持
MIT License
欢迎提交 Issue 和 Pull Request 来改进这个项目。