ninoRepublic/mini-scss-js
GitHub: ninoRepublic/mini-scss-js
一个VS Code扩展,自动化SCSS编译和JS压缩混淆,支持源映射和日志移除以提升前端开发效率。
Stars: 0 | Forks: 0
# 迷你 SCSS JS
[](https://github.com/ninoRepublic/mini-scss-js)
[](https://code.visualstudio.com)
[](https://github.com/ninoRepublic/mini-scss-js/blob/main/LICENSE)
**[中文文档](README.zh-CN.md)**
保存时自动将 SCSS 编译为 CSS,并压缩/混淆 JavaScript,支持源映射。
## 功能
- **SCSS 转 CSS** — 保存时将 `.scss` 编译为 `.min.css`,并生成源映射
- **JS 压缩** — 压缩 JavaScript,移除 `console.log` / `cm.log`,输出 `.min.js` 和源映射
- **JS 混淆** — 右键菜单可对 JS 文件进行加密,支持控制流平坦化和字符串数组转换
- **源映射** — 为 CSS 和 JS 调试生成 `.map` 文件
- **零配置** — 安装后即可使用;所有功能均可通过设置开关
## 工作原理
当你保存 `.scss` 或 `.js` 文件时,扩展会自动处理它们:
```
styles/
├── main.scss ← save this
├── main.min.css ← generated
└── main.min.css.map ← generated
scripts/
├── app.js ← save this
├── app.min.js ← generated (minified)
└── app.min.js.map ← generated
```
为避免重复处理,以 `.min.js` 结尾的文件会被跳过。`node_modules` 中的文件始终被排除。
### 右键菜单:JS 混淆
在资源管理器中右键单击 `.js` 文件,选择 **🍑JS加密** 来压缩和混淆它:
1. Terser 压缩代码并移除调试语句
2. javascript-obfuscator 应用控制流平坦化和字符串数组转换
3. 输出保存为同目录下的 `.min.js`
## 扩展设置
| 设置项 | 默认值 | 描述 |
|---------|---------|-------------|
| `mini-scss-js.enabled` | `true` | 全局启用/禁用扩展 |
| `mini-scss-js.scss.enabled` | `true` | 启用/禁用 SCSS 编译 |
| `mini-scss-js.js.enabled` | `true` | 启用/禁用 JS 处理 |
| `mini-scss-js.logFunctions` | `["console.log", "cm.log"]` | JS 压缩时要移除的函数调用 |
### 配置示例
添加自定义日志函数以便移除:
```
"mini-scss-js.logFunctions": ["console.log", "console.warn", "cm.log", "debug.log"]
```
## 要求
- VS Code 1.80+
- 无需外部依赖 — `sass`、`terser`、`javascript-obfuscator` 已随扩展捆绑。
## 依赖项
| 包 | 用途 |
|---------|---------|
| [sass](https://github.com/sass/dart-sass) | SCSS 转 CSS 编译 |
| [terser](https://github.com/terser/terser) | JavaScript 压缩及调试语句移除 |
| [javascript-obfuscator](https://github.com/javascript-obfuscator/javascript-obfuscator) | JavaScript 混淆 |
## 发布说明
### 1.0.0
- SCSS 编译并生成源映射
- JS 压缩(通过 terser),移除 `console.log` / `cm.log`
- JS 混淆(通过 javascript-obfuscator)
- 右键菜单 🍑JS加密 命令
- 可通过 VS Code 设置进行配置
- 排除 `node_modules`
## 已知问题
- 混淆过程是 CPU 密集型操作;非常大的 JS 文件在保存时可能会导致短暂卡顿。
- 混淆器在 terser 完成后同步运行。此行为可能在未来的版本中改为异步。
## 许可证
[MIT](https://github.com/ninoRepublic/mini-scss-js/blob/main/LICENSE)
标签:CSS压缩, JavaScript压缩, SCSS编译, SOC Prime, Subfinder, VS Code扩展, Web优化, 代码优化, 代码加密, 代码混淆, 保存时处理, 前端构建, 前端自动化, 开发工具, 数据可视化, 日志移除, 源映射, 自定义脚本, 零配置