# @browserify/uglifyify 中文文档

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

版本：6\.0\.0
npm 元数据更新时间：2022-10-16T10:18:07.727Z
中文译文更新时间：2026-11-08T16:22:41.137Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：17.4 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2022-10-16T10:18:07.075Z
- 最新版本发布：2022-10-16T10:18:07.308Z
- 近 30 天下载量：66186（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @browserify/uglifyify
```

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

## README

# @ 浏览验证/ 取消

A 类 [浏览器](http://browserify.org/) 转换可修改您的代码 使用 [坐标](https://github.com/fabiosantoscode/terser)。 。 。 .

## 安装

```bash
npm install @browserify/uglifyify
```

## 动机/使用

通常你这样做是好的:

```bash
browserify index.js | terser -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 @browserify/uglifyify index.js -o dev.js &&
NODE_ENV=production browserify -t envify -t @browserify/uglifyify index.js -o prod.js
```

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

## 文件扩展名

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

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

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

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

## 全球变革

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

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

或者程序上说:

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

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

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

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

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

## 忽略文件

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

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

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

bundler.transform('@browserify/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 @browserify/uglifyify --debug index.js
```

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

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

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

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

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

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

## 常见问题

### @browserify/uglifyify 是什么？

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

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

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

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

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

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

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

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

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

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

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

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

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

