# @frida/uglifyify 中文文档

规范地址：https://npmcn.com/package/%40frida/uglifyify/

版本：7\.0\.1
npm 元数据更新时间：2026-06-24T21:46:01.216Z
中文译文更新时间：2026-11-15T14:31:54.605Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40frida/uglifyify
原文对照：https://npmcn.com/package/%40frida/uglifyify/?lang=original
项目主页：https://github.com/frida/uglifyify#readme
源码仓库：https://github.com/frida/uglifyify

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：16.3 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=4\.0\.0
- 运行依赖：4 个
- 首次发布：2019-05-01T15:32:03.136Z
- 最新版本发布：2020-09-17T13:56:43.262Z
- 近 30 天下载量：2613（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

用 terser 修改您的代码的浏览器转换

## 安装

```sh
npm install @frida/uglifyify
```

也可以使用：`pnpm add @frida/uglifyify`、`yarn add @frida/uglifyify`、`bun add @frida/uglifyify`

## README

# 丑化

A 类 [浏览器](http://browserify.org/) v2 切换您的代码 使用 [坐标](https://github.com/fabiosantoscode/terser) (一种维持的一叉uglify-es).

这一分叉包含一些长期问题的解决办法,其中包括:

-   [https://github.com/hughsk/uglify/pul/93 互联网档案馆的存檔,存档日期2013-12-21](https://github.com/hughsk/uglifyify/pull/93)
-   [https://github.com/hughsk/uglifyfy/issues/88 (中文(简体) )](https://github.com/hughsk/uglifyify/issues/88)
-   [https://github.com/hughsk/uglify/pull/85 (中文(简体) )](https://github.com/hughsk/uglifyify/pull/85)
-   [https://github.com/hughsk/uglify/pull/42 (中文(简体) )](https://github.com/hughsk/uglifyify/pull/42) (部分为)

## 安装

```bash
npm install uglifyify
```

## 动机/使用

通常你这样做是好的:

```bash
browserify index.js | uglifyjs -c > bundle.js
```

但uglify通过单独处理文件可以产生更小的输出 而不是整个包。 当使用丑化时,一般应该 **(单位:千美元)** 使用 Uglify,实现最小输出. 丑化提供 用于 Uglify 时的额外优化,但不提供全部 优化使用Uglify本身可以,所以它不是一个替换.

Uglify 使您能够将 Uglify 的 “ squeeze” 变换 应用到每个 文件 _在此之前_ 它包含在捆绑中,意味着你可以去除已死代码 有条件路径需要。 以下是一个精心构思的例子:

```javascript
if (true) {
  module.exports = require('./browser')
} else {
  module.exports = require('./node')
}
```

`module.exports = require('./node')` 会被Uglify排除,意思是 仅限 `./browser` 将被捆绑并需要.

如果你把丑化和 [输入](http://github.com/hughsk/envify),你吗 可以让这个更方便 使用此代码 :

```javascript
if (process.env.NODE_ENV === 'development') {
  module.exports = require('./development')
} else {
  module.exports = require('./production')
}
```

用这个来编译:

```bash
NODE_ENV=development browserify -t envify -t uglifyify index.js -o dev.js &&
NODE_ENV=production browserify -t envify -t uglifyify index.js -o prod.js
```

不应该说,你应该 犹豫利用环境 浏览模块中的变量 - 这最适合您自己的 用浏览器构建的应用程序或模块 `--standalone` 标签.

## 文件扩展名

有时,你不希望丑化 将你的所有文件,例如, 如果你正在使用一个转换到 `require` CSS 或 HTML, 您可能会出错 如丑化所期望的JavaScript,如果无法解析它给出的会抛出.

使用 `-x` 或者说 `--exts` 转换选项,例如从 命令行 :

```bash
browserify     \
  -t coffeeify \
  -t [ uglifyify -x .js -x .coffee ]
```

上面的例子只会变小 `.js` 财务报告和审定财务报表 `.coffee` 文档,忽略其他文件.

## 全球变革

你也许也想利用丑化的预分解 要在整个浏览器中生成更精简的文件。 以 默认, 转换只更改您的应用程序代码, 但您可以使用全局 变换成模块代码 从您的终端:

```bash
browserify -g uglifyify ./index.js > bundle.js
```

或者程序上说:

```javascript
var browserify = require('browserify')
var fs = require('fs')

var bundler = browserify(__dirname + '/index.js')

bundler.transform('uglifyify', { global: true  })

bundler.bundle()
  .pipe(fs.createWriteStream(__dirname + '/bundle.js'))
```

注意,这是罚款 丑化,因为它不应该改变的行为 您的代码出乎意料, 但是像刻录这样的变换 几乎总是 保持本地状态, 否则您会在模块中遇到出乎意料的副作用 没想到会这样修改.

## 忽略文件

有时uglifyjs会在特定设置下打碎特定文件——这是 难得的,但确实发生了,为了解决这个问题,你可以使用 `ignore` 选项。 在一个或多个 Glob 模式下,您可以过滤出特定文件 这边:

```bash
browserify -g [ uglifyify --ignore '**/node_modules/weakmap/*' ] ./index.js
```

```javascript
var bundler = browserify('index.js')

bundler.transform('uglifyify', {
  global: true,
  ignore: [
      '**/node_modules/weakmap/*'
    , '**/node_modules/async/*'
  ]
})

bundler.bundle().pipe(process.stdout)
```

## 来源地图

Uglify 支持源地图, 这样您就可以将您的代码最小化, 并且仍然看到 原始来源 – 使用诸如 [驱魔师](https://github.com/thlorenz/exorcist) 创建生产时 建设.

当:

-   你正在使用另一个转变,例如 [咖啡调制](https://github.com/jnordberg/coffeeify),该内含源地图.
-   你通过了 `--debug` 旗帜(或 `debug` 选项)到浏览器 捆绑.

启用 `--debug` 使用浏览器很容易:

```bash
browserify -t uglifyify --debug index.js
```

```javascript
var bundler = browserify({ debug: true })

bundler
  .add('index.js')
  .transform('uglifyify')
  .bundle()
  .pipe(process.stdout)
```

如果你愿意不把它们包含进去, 你可以选择退出 使用 `sourcemap` 选项 :

```bash
browserify -t [ uglifyify --no-sourcemap ] app.js
```

```javascript
var bundler = browserify('index.js')

bundler.transform('uglifyify', { sourceMap: false })
  .bundle()
  .pipe(process.stdout)
```

## 常见问题

### @frida/uglifyify 是什么？

用 terser 修改您的代码的浏览器转换

### 如何安装 @frida/uglifyify？

在项目目录运行 npm install @frida/uglifyify，或使用 pnpm add / yarn add / bun add。

### @frida/uglifyify 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/frida\_\_uglifyify 是否存在。

### @frida/uglifyify 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @frida/uglifyify 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=4\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @frida/uglifyify 可以商用吗？

@frida/uglifyify 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @frida/uglifyify 的下载量有多少？

根据 npm 官方下载统计，@frida/uglifyify 在 2026/10/16 – 2026/11/14 这 30 天内被下载 2,613 次，日均约 87 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @frida/uglifyify 还在维护吗？

最新版本 7\.0\.1 发布于 2020/09/17（6 年前）；至今共发布 4 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/05/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

