Loading…

关于 在线 JavaScript 压缩工具

数秒内交付更小的 JavaScript 打包文件 ⚡。此在线 JavaScript 压缩工具将您的 JS 解析为 AST,去除注释和不必要的空白字符,并应用安全的压缩过程。非常适合缩小独立脚本、快速修复、标签管理器代码段和部署前检查。所有操作 100% 在客户端运行 – 您的代码永不离开浏览器。

此 JavaScript 压缩器的主要特性

  • 即时、浏览器内 JS 压缩(无需上传文件至服务器)
  • 移除注释并压缩不必要的空格/换行
  • 基于 AST 的压缩,类似 Terser(常量折叠、安全条件下的死代码删除)
  • 通过 API 或构建集成可选标识符混淆和高级标志
  • 支持现代 JavaScript (ES2015+)、经典脚本和简单模块输出
  • 一键复制或下载压缩后的 JavaScript
  • 使用与 JavaScript 格式化器相同的核心组件:一键切换格式化和压缩输出
  • 100% 客户端处理,确保最高隐私

🛠️ 如何压缩 JavaScript for javascript-minifier

1

粘贴或上传您的 JS

将 .js/.mjs 文件拖入编辑器或直接粘贴 JavaScript。此工具适用于单个脚本、工具文件和小型捆绑包。

2

选择压缩模式

使用与 JavaScript 格式化器相同的组件:切换到压缩操作以获取压缩输出而非格式化代码。

3

运行压缩器

您的代码被解析为 AST,注释和多余空格被去除,并应用安全压缩过程以减少捆绑包大小。

4

复制或下载结果

从输出编辑器复制压缩后的 JavaScript 或下载为 .min.js 文件,并将其包含在您的 HTML、CDN 或构建输出中。

技术规格

核心转换(安全默认设置)

保守的默认设置旨在保持运行时行为,同时显著减小代码大小。

操作已应用备注
移除行和块注释可通过配置/API保留许可证注释(/*! ... */)
折叠空白和换行在语义安全处规范化空白;保留字符串和正则表达式内容
常量折叠和简单内联仅在结果可证明等价时执行
死代码消除移除常量传播后不可达的分支
标识符混淆✅ 可选缩短变量和函数名;可通过高级选项/API配置
移除调试辅助工具(console/debugger)✅ 可选当生产环境不依赖控制台输出时可启用

安全与兼容性控制

高级选项(主要通过构建工具/API暴露)可调节代码压缩的激进程度

选项默认值说明
ECMA目标版本2020控制输出语法和部分压缩规则
模块与脚本模式脚本为ESM包启用模块/顶级优化
保留函数名/类名false保留名称以改善堆栈追踪或依赖注入框架
Safari10/旧版兼容关闭仅针对特定旧版引擎时启用
顶级作用域false允许丢弃未使用的顶级绑定以实现高级摇树优化

典型体积缩减

节省空间大小因原始格式、注释密度和死代码数量而异

输入样式仅压缩压缩+混淆(激进)
大量注释和空格35%–55%50%–70%
适度格式化的应用代码20%–35%35%–55%
已压缩代码5%–15%10%–25%

生产构建的CLI替代方案

对于完整应用和多文件项目,将压缩集成到您的CI/CD流水线中。

Node.js

Terser(常见情况)

npx terser src/app.js -o dist/app.min.js -c ecma=2020,passes=2 -m

两次压缩传递加上标识符混淆,实现强力体积缩减。

保留名称和移除控制台的Terser

npx terser src/app.js -o dist/app.min.js -c passes=2,drop_console=true -m reserved=["React","ReactDOM"] --keep-fnames

保护重要全局变量,移除控制台调用,并保留函数名以便调试。

Linux/macOS/Windows

esbuild(极速)

npx esbuild src/app.js --minify --target=es2018 --outfile=dist/app.min.js

在单个极速步骤中打包和压缩。

SWC(基于Rust)

npx swc src -d dist --minify

使用高性能Rust引擎进行转译和压缩。

常见用例

网页性能与核心Web指标

  • 减少JavaScript传输大小以加快LCP和TTI
  • 部署前去除调试注释和日志记录
  • 在gzip/brotli压缩前缩小客户端包
/* 仅在构建时存在的注释,在压缩输出中会被移除 */

CI/CD与发布自动化

  • 在构建流水线的最后一步压缩JS
  • 为CDN准备小巧、缓存友好的包
  • 与HTML/CSS压缩器一起生成生产就绪的资源

小部件、嵌入与实验

  • 通过标签管理器部署紧凑代码片段
  • 在第三方页面中嵌入压缩后的小部件
  • 对关键脚本尝试不同的压缩策略

❓ Frequently Asked Questions

压缩JavaScript会改变代码运行方式吗?

在安全默认设置下,运行时行为应保持相同。但若使用激进选项(如顶级优化、标识符混淆或移除控制台调用),当代码依赖名称、副作用或日志记录时可能影响行为。请始终保留未压缩版本并对压缩构建运行测试。

此工具是否直接处理TypeScript或JSX?

本压缩器针对纯JavaScript。对于TypeScript或JSX,需先转译为JavaScript(通过SWC、esbuild或Babel),再压缩生成的JS代码。

我的JavaScript代码会上传到服务器吗?

不会。所有处理均在浏览器中使用客户端代码完成。源代码不会发送至任何远程服务器,非常适合私有/专有脚本。

我的JavaScript文件最大支持多大?

为保障浏览器流畅体验,本在线工具建议文件大小约1MB以内。更大规模的打包文件和重复压缩操作更适合通过集成到构建流程中的CLI工具处理。

格式化与压缩有什么区别?

格式化使代码更易读(统一缩进与间距),压缩使代码更小(移除空白符、注释和冗余代码)。本工具共享相同核心组件:需可读性时使用格式化功能,需生产环境打包时使用压缩功能。

Pro Tips

Best Practice

在打包工具中定义NODE_ENV=production(或等效设置)可解锁许多库中的额外死代码剔除功能。

Best Practice

在版本控制中保留未压缩源码(大型应用需包含源映射),生产环境仅提供压缩后资源。

Best Practice

混淆时使用保留名称以保护挂载在window或globalThis上的公共API。

Best Practice

在CDN或服务器层级将压缩与gzip或brotli结合使用,实现叠加的体积优化效果。

Additional Resources

Other Tools