@bazel/terser

中文文档
5.8.1发布于 2023/02/17Apache-2.0零依赖近 30 天下载 8.9万

在 Bazel 下运行 Terser JS 优化程序

中文使用文档
文档目录3 节
  1. 安装
  2. 安装用户管理的依赖
  3. 已忽略

巴泽尔的特尔泽规则

特尔泽规则与巴泽尔管理特尔泽JS分解器.

将记录在 https://github.com/terser-js/terser#command-line-usage 页面存档备份,存于互联网档案馆

安装

添加数据 @bazel/terser npm 软件包到您的 devDependencies 内 package.json。 。 。 .

安装用户管理的依赖

如果你没有使用 yarn_install 或者说 npm_install 规则,你得在你的根部宣布一条规则 BUILD.bazel 要执行的 terser 文件 :

# Create a terser rule to use in terser_minified#terser_bin
# attribute when using user-managed dependencies
nodejs_binary(
    name = "terser_bin",
    entry_point = "//:node_modules/terser/bin/uglifyjs",
    # Point bazel to your node_modules to find the entry point
    data = ["//:node_modules"],
)

已忽略

用户

terser_minified(name, args, config_file, debug, sourcemap, src, terser_bin)

运行 terser 修改器 .

典型实例:

load("@npm//@bazel/terser:index.bzl", "terser_minified")

terser_minified(
    name = "out.min",
    src = "input.js",
    config_file = "terser_config.json",
)

注意 name 属性决定所产生文件的名称. 所以上面的例子将输出 out.min.js 财务报告和审定财务报表 out.min.js.map (自2006年起) sourcemap 默认为 true) (中文(简体) ). 如果输入是一个目录,则输出也将是一个目录,以 name 属性. 请注意,这一规则是: 没有 递相取取. 它假设一个平平的文件结构. 在有嵌入文件夹的文件夹中传递 将生成一个空输出目录.

捐款

名称

(单位:千美元)名称,强制:这个目标的独有名称.

参数

(单位:千美元)字符串列表: 需要传递到terser的附加命令行参数.

Terser 只解析配置文件中的 minify () 参数, 从而添加参数, 例如 --comments 可能 被传递到使用此属性的规则。 见 https://github.com/terser/terser#命令-行-使用 联 合 国 完整的 terser CLI 选项列表.

默认为 []

配置文件( f)

(单位:千美元)标签: 包含 Terser minify () 选项的 JSON 文件 .

这是您在 terser 的 CLI 中通过的文件 . https://github.com/terser-js/terser#minify-options 互联网档案馆的存檔,存档日期2013-12-22 文档文件的内容.

Bazel将制作一份您的配置文件,将其作为模板处理.

运行 Bazel 与 --subcommands 以查看复制文件的路径.

如果你用魔法线 "bazel_debug" 或者说 "bazel_no_debug",这些将是 替换为 true 财务报告和审定财务报表 false 尊重《公约》的价值 debug 属性 或 --compilation_mode=dbg 巴泽尔旗.

举个例子

{
    "compress": {
        "arrows": "bazel_no_debug"
    }
}

将禁用 arrows 调试时压缩设置 .

若为 config_file 未提供, Bazel 将使用默认配置文件.

默认为 @npm//@bazel/terser:terser_config.default.json

调试

(单位:千美元)布尔: 配置terser以产生更可读输出.

而不是设置此属性, 考虑使用调试汇编模式 bazel 构建 -- ccomption mode=dbg//my/terser:目标 这样它只会影响目前的建筑.

默认为 False

源图

(单位:千美元)布尔: 是否产生.js.map 输出

默认为 True

曲线

(单位:千美元)标签,强制: 要修改的文件 .

可以是.js文件,规则生成.js文件作为其默认输出,也可以是规则生成.js文件目录.

注意您可以将多个文件传递给 terser, 它会捆绑在一起 . 如果你想这样做,可以在这里通过一个文件组.

三进制( b)

(单位:千美元)标签: 运行 Terser 的可执行目标

默认为 @npm//@bazel/terser/bin:terser

版本与发布记录

@bazel/terser 共发布 100 个版本,首次发布于 2019/09/27;过去 12 个月发布了 0 个版本。

版本发布日期距今
5.8.1latest2023/02/173 年前
5.7.32022/12/093 年前
5.7.22022/11/273 年前
5.7.12022/10/274 年前
5.7.02022/10/074 年前
5.6.02022/09/274 年前

其他发布通道:next → 5.0.0-rc.2,lts → 4.6.2。

关于 @bazel/terser 的常见问题

@bazel/terser 是什么?

在 Bazel 下运行 Terser JS 优化程序

如何安装 @bazel/terser?

在项目目录运行 npm install @bazel/terser,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:terser(>=4.0.0 <5.9.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 terser,可以用 npx terser 直接运行。

@bazel/terser 支持 TypeScript 吗?

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

@bazel/terser 可以商用吗?

@bazel/terser 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@bazel/terser 的下载量有多少?

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

@bazel/terser 还在维护吗?

最新版本 5.8.1 发布于 2023/02/17(3 年前);至今共发布 100 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/09/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。