# @comandeer/rollup-lib-bundler 中文文档

规范地址：https://npmcn.com/package/%40comandeer/rollup-lib-bundler/

版本：0\.27\.0
npm 元数据更新时间：2025-04-05T17:30:08.346Z
中文译文更新时间：2026-11-10T12:24:08.285Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：272 kB，10 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.11\.0
- 运行依赖：20 个
- 首次发布：2017-03-19T18:55:06.351Z
- 最新版本发布：2025-04-05T17:30:08.177Z
- 近 30 天下载量：2780（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：36（近 12 个月 0 个）

## 中文简介

简单的库捆绑器

## 安装

```sh
npm install @comandeer/rollup-lib-bundler
```

也可以使用：`pnpm add @comandeer/rollup-lib-bundler`、`yarn add @comandeer/rollup-lib-bundler`、`bun add @comandeer/rollup-lib-bundler`

## README

# @ comandeer/ rollup- lib- bundler

[![Build Status](https://github.com/Comandeer/rollup-lib-bundler/workflows/CI/badge.svg)](https://github.com/Comandeer/rollup-lib-bundler/actions) [![codecov](https://codecov.io/gh/Comandeer/rollup-lib-bundler/branch/main/graph/badge.svg)](https://codecov.io/gh/Comandeer/rollup-lib-bundler) [![npm (scoped)](https://img.shields.io/npm/v/@comandeer/rollup-lib-bundler.svg)](https://npmjs.com/package/@comandeer/rollup-lib-bundler)

使用超级视图库捆绑器 [滚动](https://github.com/rollup/rollup), (中文(简体) ), [宝贝](https://github.com/babel/babel) 财务报告和审定财务报表 [坐标](https://github.com/terser/terser)。 。 。 .

## 安装

```bash
npm install @comandeer/rollup-lib-bundler --save-dev
```

## 使用量

把它编成npm脚本:

```json
"scripts": {
    "build": "rlb"
}
```

## 配置

没有配置 。 把它视为一个特色.

## 怎么会这样?

它会得到 `package.json` 从当前工作目录中解析并获取 need 信息 :

-   `name`, (中文(简体) ), `author`, (中文(简体) ), `version` 财务报告和审定财务报表 `license` 创造美丽的旗帜评论,
-   `exports.import` 确定在何处保存无害环境管理捆绑(见 ["支持过" `exports` 语法"](https://npmcn.com/package/%40comandeer/rollup-lib-bundler/#readme-supported-exports-syntax) )))的章节.

然后,捆绑发生。 滚动的默认切入点是 `src/index.js`。 。 。 .

> \[尖叫声\] 请注意: **dist 目录在捆绑前被清除**来啊! 所以,如果有什么应该 与捆绑在一起, 它应该添加在那里 _之后_ 捆绑.

### 假设的文件结构

这是非常有意见的捆绑器,它假设项目的文件结构看起来像下面的:

```
package/
|- package.json
|- src/
|     |- index.js
|     |- some-other-chunk.js
|- dist/
|      |- bundled-index.mjs
|      |- bundled-index.mjs.map
|      |- bundled-some-other-chunk.mjs
|      |- bundled-some-other-chunk.mjs.map
```

-   `package.json` 在包的根部(这是我们都同意的唯一一块!),
-   `src/` 目录包含软件包的来源,
    -   `index.js` 是包的主要切入点,
    -   `some-other-chunk.js` 是可选的附加入口(更多信息见\[#mutliple-bundles\] (多包)),
-   `dist/` 目录包含捆绑的代码.

Bundler 搜索源文件,其扩展名如下:

-   `.mts`, (中文(简体) ),
-   `.ts`, (中文(简体) ),
-   `.mjs`, (中文(简体) ),
-   `.js`, (中文(简体) ),
-   `.cts`, (中文(简体) ),
-   `.cjs`。 。 。 .

## 多个捆绑

默认, `src/index.js` 被作为唯一的切入点。 但是,使用 [子路径导出](https://nodejs.org/api/packages.html#subpath-exports) 可以创建多个捆绑块/文件。 示例

```json
"exports": {
    ".": {
        "import": "./dist/package.mjs"
    },

    "./chunk": {
        "import": "./dist/chunk.mjs"
    }
}
```

在这种情况下,将捆绑两个源文件:

-   `src/index.js`数字 :
    -   无害环境管理产出: `dist/package.mjs`, (中文(简体) ),
-   `src/chunk.js`数字 :
    -   无害环境管理产出: `dist/chunk.mjs`。 。 。 .

每个子路径被翻译为适当的文件 `src` 目录。 基本上,我们.., `./` 开始时将翻译为 `src/` 和子路径的名称翻译为 `<subpath>.<extension>` (例如:. `./chunk` → `src/chunk.js`) (中文(简体) ). 唯一的例外是 `.` 子路径,将其翻译为 `src/index.js`。 。 。 .

至0.19.0版本,捆绑者还自动省略了其他捆绑内部的捆绑. 如果有进口 `src/chunk.js` 文件在 `src/index.js` 中的文件,然后是 `dist/package.(c|m)js` 文件将包含从 `dist/chunk.(c|m)js` 而非其他捆绑的内容.

## 支助 `exports` 语法

捆绑器只支持 `exports` 节点允许的语法 :

-   **`exports` 作为字符串**数字 :
    
    ```json
    {
        "exports": "./dist/package.mjs"
    }
    ```
    
-   **子路径作为字符串**数字 :
    
    ```json
    {
        "exports": {
            ".": "./dist/package.mjs",
            "./subpath": "./dist/chunk.js"
        }
    }
    ```
    
-   **`exports` 有条件出口**数字 :
    
    ```json
    {
        "exports": {
            "types": "./dist/package.d.mts",
            "import": "./dist/package.mjs"
        }
    }
    ```
    
-   **有有条件出口的子路径**数字 :
    
    ```json
    {
        "exports": {
            ".": {
                "types": "./dist/package.d.mts",
                "import": "./dist/package.mjs"
            }
        }
    }
    ```
    

## 转接

捆绑者转录了所有与 Babel 的代码。 转接目标可随 `engines.node` 区域 `package.json` 文件 :

```json
{
    "engines": {
        "node": "20.1.0"
    }
}
```

任何有效的 [semver 语法](https://semver.npmjs.com/) 被支持.

如果 `engines.node` 未指定字段, 或其中包含无效的版本, 捆绑器倒回 `current` 版本 – 所以用于运行捆绑器的节点版本.

## 类型脚本支持

从v0.17.0开始,捆绑者还可以捆绑TypeScript项目. 不需要配置,只需替换 `.js` 与扩展 `.ts` 一个! 还要保证有有效的 `tsconfig.json` 在您的项目根中的文件。 如果您想要为捆绑器提供不同的配置, 请设置 a `tsconfig.rlb.json` 文档代替.

> \[尖叫声\] 这个 [`outDir` 配置选项](https://www.typescriptlang.org/tsconfig/#outDir) 被捆绑器所覆盖,以指向与"滚滚"配置中的目录相同的目录. 见 [327号](https://github.com/Comandeer/rollup-lib-bundler/issues/327) 更多细节.

捆绑者也捆绑 `.d.ts` 文件,但只有您指定了 `exports.types` 字段中 `package.json`。 。 。 .

TS 项目的样本配置 :

```json
"exports": {
    ".": {
        "types": "./dist/index.d.ts",
        "import": "./dist/index.mjs"
    },

    "./chunk": {
        "import": "./dist/chunk.mjs"
    }
}
```

在这种情况下,将捆绑两个源文件:

-   `src/index.ts`数字 :
    -   无害环境管理产出: `dist/index.mjs`, (中文(简体) ),
    -   DTS 输出 : `dist/index.d.ts`, (中文(简体) ),
-   `src/chunk.ts`数字 :
    -   无害环境管理产出: `dist/chunk.mjs`, (中文(简体) ),
    -   DTS 输出: 无( 没有) `types` 页:1.

## 捆绑可执行文件( aka 二进制)

从v.1.9.0起 `rlb` 也可以将定义于 [`bin` 字段](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#bin) 会 议 日 程 和 议 程 `package.json`它支持该领域的简单形式和复杂的形式。 二进制的源文件必须放在 `src/__bin__` 名称与 `bin` 字段。 支持所有源文件格式 `exports` 捆绑也用于 `bin` 这些.

从 `bin` 字段以无害环境管理格式保存。 捆绑者也将保留在所生产的捆绑中.

### 简单的例子 `bin` 格式

```json
{
    "name": "some-package",
    "exports": {
        ".": {
            "import": "./dist/index.mjs"
        }
    },
    "bin": "./dist/bin.mjs"
}
```

在这种情况下,捆绑者除了以下源文件结构:

```
some-package/
|- package.json
|- src/
|     |- index.js
|     |- __bin__/
|     |         |- some-package.js
```

请注意,在使用简便时 `bin` 格式(因此仅是可执行文件的路径,没有它的名称),捆绑者会以软件包的名称查找源文件(来源于 `name` 区域 `package.json` 文档).

### 复数示例 `bin` 格式

```json
{
    "name": "some-package",
    "exports": {
        ".": {
            "import": "./dist/index.mjs"
        }
    },
    "bin": {
        "whatever": "./dist/bin.mjs",
        "another-one": "./dist/bin2.js"
    }
}
```

在这种情况下,捆绑者除了以下源文件结构:

```
some-package/
|- package.json
|- src/
|     |- index.js
|     |- __bin__/
|     |         |- whatever.js
|     |         |- another-one.js
```

## 支持非标准离散目录

从v.2.0.0开始,捆绑者正式支持非标准分解目录(不同于 `./dist` (第1个) 解析离线目录 `exports` 区域 `package.json`,例如:

```json
"exports": {
    ".": {
        "import": "./hublabubla/package.mjs"
    }
}
```

在上述例子中 `./hublabubla` 将使用目录代替 `./dist` 一个.

捆绑器还支持多个非标准分解目录,例如:

```json
"exports": {
    ".": {
        "import": "./bublahubla/package.mjs"
    },
    "./chunk": "./hublabubla/chunk.mjs"
}
```

> \[尖叫声\] 非标准散列目录在被捆绑之前被清除! 所以,如果有什么应该 与捆绑在一起, 它应该添加在那里 _之后_ 捆绑.

## 配置 VSC 以正确建议进口

VSC使用TypeScript规则建议进口. 然而,TS默认使用CJS规则,忽略了CJS的限制 `exports` 字段和建议整个文件路径(例如). `<package>/dist/<file>` 改为 `<package>/<submodule-name>`) (中文(简体) ). 要修复, TS 必须配置由 `tsconfig.json` 或者说 `jsconfig.json` 文件为 [根据无害环境管理规则解决模块](https://www.typescriptlang.org/tsconfig#moduleResolution)数字 :

```json5
{
    "module": "node16",
    // or
    "moduleResolution": "node16"
}
```

## 许可证

见 [自由主义](https://npmcn.com/package/%40comandeer/rollup-lib-bundler/LICENSE) 详细文件.

## 常见问题

### @comandeer/rollup-lib-bundler 是什么？

简单的库捆绑器

### 如何安装 @comandeer/rollup-lib-bundler？

在项目目录运行 npm install @comandeer/rollup-lib-bundler，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 rlb，可以用 npx rlb 直接运行。

### @comandeer/rollup-lib-bundler 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @comandeer/rollup-lib-bundler 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @comandeer/rollup-lib-bundler 需要什么版本的 Node\.js？

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

### @comandeer/rollup-lib-bundler 可以商用吗？

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

### @comandeer/rollup-lib-bundler 的下载量有多少？

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

### @comandeer/rollup-lib-bundler 还在维护吗？

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

