Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(en): merge rollup/master into rollup-docs-cn/master @ 28546b58 #147

Merged
merged 10 commits into from
Jul 25, 2024
2 changes: 1 addition & 1 deletion .github/workflows/build-and-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ jobs:
- host: windows-latest
target: x86_64-pc-windows-msvc
- host: macos-latest
target: x86_64-apple-darwin
target: aarch64-apple-darwin
node:
- '18.0.0'
- '20'
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# rollup changelog

## 4.19.0

_2024-07-20_

### Features

- Implement support for decorators (#5562)

### Bug Fixes

- Improve soucemap generation when tree-shaking logical expressions (#5581)

### Pull Requests

- [#5562](https://github.com/rollup/rollup/pull/5562): feat: implementing decorator support (@TrickyPi, @lukastaegert)
- [#5570](https://github.com/rollup/rollup/pull/5570): refactor(finalisers): condition branch (@Simon-He95, @zhangmo8)
- [#5572](https://github.com/rollup/rollup/pull/5572): Improve chunk and asset type information in docs (@lukastaegert)
- [#5573](https://github.com/rollup/rollup/pull/5573): Switch to audit resolver to ignore requirejs vulnerability (@lukastaegert)
- [#5575](https://github.com/rollup/rollup/pull/5575): chore(deps): update dependency inquirer to v10 (@renovate[bot], @lukastaegert)
- [#5576](https://github.com/rollup/rollup/pull/5576): chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
- [#5580](https://github.com/rollup/rollup/pull/5580): chore(deps): lock file maintenance minor/patch updates (@renovate[bot], @lukastaegert)
- [#5581](https://github.com/rollup/rollup/pull/5581): When tree-shaking logical expression, make sure to remove all trailing white-space. (@lukastaegert)

## 4.18.1

_2024-07-08_
Expand Down
2 changes: 1 addition & 1 deletion browser/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rollup/browser",
"version": "4.18.1",
"version": "4.19.0",
"description": "Next-generation ES module bundler browser build",
"main": "dist/rollup.browser.js",
"module": "dist/es/rollup.browser.js",
Expand Down
89 changes: 58 additions & 31 deletions docs/configuration-options/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -566,11 +566,19 @@ export default {

### output.assetFileNames {#output-assetfilenames}

| | |
| -----: | :-------------------------------------------- |
| 类型: | `string\| ((assetInfo: AssetInfo) => string)` |
| CLI: | `--assetFileNames <pattern>` |
| 默认: | `"assets/[name]-[hash][extname]"` |
| | |
| -----: | :--------------------------------------------------- |
| 类型: | `string\| ((assetInfo: PreRenderedAsset) => string)` |
| CLI: | `--assetFileNames <pattern>` |
| 默认: | `"assets/[name]-[hash][extname]"` |

```typescript
interface PreRenderedAsset {
name?: string;
source: string | Uint8Array;
type: 'asset';
}
```

该选项的值是一个匹配模式,用于自定义构建结果中的静态资源名称,或者值为一个函数,对每个资源调用以返回匹配模式。这种模式支持以下的占位符:

Expand All @@ -579,18 +587,20 @@ export default {
- `[hash]`:基于静态资源内容的哈希。也可以通过例如 `[hash:10]` 设置一个特定的哈希值长度。默认情况下,它会生成一个 base-64 的哈希值。如果你需要减少字符集的大小,可以查看 [`output.hashCharacters`](#output-hashcharacters)。
- `[name]`:静态资源的名称,不包含扩展名。

正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`assetInfo` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中没有 `fileName` 的简化版本。另见[`output.chunkFileNames`](#output-chunkfilenames),[`output.entryFileNames`](#output-entryfilenames)。
正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`PreRenderedAsset` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中 `OutputAsset` 类型的简化版本,它没有 `fileName`。另见 [`output.chunkFileNames`](#output-chunkfilenames),[`output.entryFileNames`](#output-entryfilenames)。

### output.banner/output.footer {#output-banner-output-footer}

| | |
| -----: | :----------------------------------------------------------- |
| 类型: | `string \| ((chunk: ChunkInfo) => string\| Promise<string>)` |
| CLI: | `--banner`/`--footer <text>` |
| | |
| --: | :-- |
| 类型: | `string \| ((chunk: RenderedChunk) => string\| Promise<string>)` |
| CLI: | `--banner`/`--footer <text>` |

查看 [`renderChunk`](../plugin-development/index.md#renderchunk) 钩子以了解 `RenderedChunk` 类型。

该选项用于在 bundle 前或后添加一个字符串。其值也可以是一个返回 `string` 的 `Promise` 异步函数(注意:`banner` 和 `footer` 选项不会破坏 sourcemaps)。

如果该选项值为函数,参数 `chunk` 包含了额外信息,使用了与 [`generateBundle`](../plugin-development/index.md#generatebundle) 钩子相同的 `ChunkInfo` 类型,但有以下区别
如果该选项值为函数,那么 `chunk` 就会包含一些额外的信息,通过 `RenderedChunk` 类型来表示,它是 [`generateBundle`](../plugin-development/index.md#generatebundle) 钩子中使用的 `OutputChunk` 类型的简化版本,具有以下区别

- `code` 和 `map` 没有设置,因为该 chunk 还没有被渲染。
- 所有包含哈希值的引用 chunk 文件名将包含哈希占位符。包括 `fileName`、`imports`、`importedBindings`、`dynamicImports` 和 `implicitlyLoadedBefore`。当你在该选项返回的代码中使用这样的占位符文件名或部分文件名时,Rollup 将在 `generateBundle` 之前用实际的哈希值替换掉占位符,确保哈希值反映的是最终生成的 chunk 中的实际内容,包括所有引用的文件哈希值。
Expand All @@ -616,19 +626,32 @@ export default {

### output.chunkFileNames {#output-chunkfilenames}

| | |
| -----: | :--------------------------------------------- |
| 类型: | `string \| ((chunkInfo: ChunkInfo) => string)` |
| CLI: | `--chunkFileNames <pattern>` |
| 默认: | `"[name]-[hash].js"` |
| | |
| -----: | :---------------------------------------------------- |
| 类型: | `string \| ((chunkInfo: PreRenderedChunk) => string)` |
| CLI: | `--chunkFileNames <pattern>` |
| 默认: | `"[name]-[hash].js"` |

```typescript
interface PreRenderedChunk {
exports: string[];
facadeModuleId: string | null;
isDynamicEntry: boolean;
isEntry: boolean;
isImplicitEntry: boolean;
moduleIds: string[];
name: string;
type: 'chunk';
}
```

该选项用于对代码分割中产生的 chunk 自定义命名,其值也可以是一个函数,对每个 chunk 调用以返回匹配模式。这种模式支持以下的占位符:

- `[format]`:输出(output)选项中定义的格式(format),例如 `es` 或 `cjs`。
- `[hash]`:仅基于最终生成的 chunk 内容的哈希值,其中包括 [`renderChunk`](../plugin-development/index.md#renderchunk) 中的转换部分和其依赖文件哈希值。你也可以通过例如 `[hash:10]` 设置一个特定的哈希值长度。默认情况下,它会生成一个 base-64 的哈希值。如果你需要减少字符集的大小,可以查看 [`output.hashCharacters`](#output-hashcharacters)。
- `[name]`:chunk 的名称。它可以通过 [`output.manualChunks`](#output-manualchunks) 选项显示的设置,或者通过插件调用 [`this.emitFile`](../plugin-development/index.md#this-emitfile) 设置。否则,它将会根据 chunk 的内容确定。

正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`chunkInfo` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 的简化版本,其中不包含依赖于文件名的属性,且没有关于所渲染模块的信息,因为只有在文件名生成之后才会渲染。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.entryFileNames`](#output-entryfilenames)。
正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`PreRenderedChunk` 就是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中 `OutputChunk` 类型的简化版本,它没有依赖于文件名的属性,也没有关于所渲染模块的信息,因为渲染只会在文件名生成之后进行。然而,你还是可以访问到 `moduleIds` 列表。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.entryFileNames`](#output-entryfilenames)。

### output.compact {#output-compact}

Expand Down Expand Up @@ -692,19 +715,21 @@ Promise.resolve()

### output.entryFileNames {#output-entryfilenames}

| | |
| -----: | :--------------------------------------------- |
| 类型: | `string \| ((chunkInfo: ChunkInfo) => string)` |
| CLI: | `--entryFileNames <pattern>` |
| 默认: | `"[name].js"` |
| | |
| -----: | :---------------------------------------------------- |
| 类型: | `string \| ((chunkInfo: PreRenderedChunk) => string)` |
| CLI: | `--entryFileNames <pattern>` |
| 默认: | `"[name].js"` |

查看 [`output.chunkFileNames`](#output-chunkfilenames) 以了解 `PreRenderedChunk` 类型。

该选项用于指定 chunks 的入口文件模式,其值也可以是一个函数,对每个入口 chunk 调用以返回匹配模式。这种模式支持以下的占位符:

- `[format]`:输出(output)选项中定义的格式(format),例如 `es` 或 `cjs`。
- `[hash]`:仅基于最终生成的入口 chunk 内容的哈希值,其中包括 [`renderChunk`](../plugin-development/index.md#renderchunk) 中的转换部分和其依赖文件哈希值。你也可以通过例如 `[hash:10]` 设置一个特定的哈希值长度。默认情况下,它会生成一个 base-64 的哈希值。如果你需要减少字符集的大小,可以查看 [`output.hashCharacters`](#output-hashcharacters)。
- `[name]`:入口文件的文件名(不包含扩展名),除非当入口文件为对象时,才用来定义不同的名称。

正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`chunkInfo` 是 [`generateBundle`](../plugin-development/index.md#generatebundle) 的简化版本,其中不包含依赖于文件名的属性,且没有关于所渲染模块的信息,因为只有在文件名生成之后才会渲染。但是,你可以访问包含 `moduleIds` 的列表。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.chunkFileNames`](#output-chunkfilenames)。
正斜杠 `/` 可以用来划分文件到子目录。当值为函数时,`PreRenderedChunk` 就是 [`generateBundle`](../plugin-development/index.md#generatebundle) 中 `OutputChunk` 类型的简化版本,它没有依赖于文件名的属性,也没有关于所渲染模块的信息,因为渲染只会在文件名生成之后进行。然而,你还是可以访问到 `moduleIds` 列表。另见 [`output.assetFileNames`](#output-assetfilenames),[`output.chunkFileNames`](#output-chunkfilenames)。

在设置 [`output.preserveModules`](#output-preservemodules) 选项时,该模式也会生效。需要注意在这种情况下,`[name]` 将包括来自输出根路径的相对路径以及可能有原始文件的扩展名,如果它不是 `.js`、`.jsx`、`.mjs`、`.cjs`、`.ts`、`.tsx`、`.mts` 或 `.cts` 的其中之一。

Expand Down Expand Up @@ -1213,10 +1238,10 @@ import('external2').then(console.log);

### output.intro/output.outro {#output-intro-output-outro}

| | |
| -----: | :----------------------------------------------------------- |
| 类型: | `string \| ((chunk: ChunkInfo) => string\| Promise<string>)` |
| CLI: | `--intro`/`--outro <text>` |
| | |
| --: | :-- |
| 类型: | `string \| ((chunk: RenderedChunk) => string\| Promise<string>)` |
| CLI: | `--intro`/`--outro <text>` |

除了在特定格式中代码不同外,该选项功能和 [`output.banner/output.footer`](#output-banner-output-footer) 类似。

Expand Down Expand Up @@ -1565,10 +1590,12 @@ export default {

### output.sourcemapFileNames

| | |
| -----: | :--------------------------------------------- |
| 类型: | `string \| ((chunkInfo: ChunkInfo) => string)` |
| CLI: | `--sourcemapFileNames <pattern>` |
| | |
| -----: | :---------------------------------------------------- |
| 类型: | `string \| ((chunkInfo: PreRenderedChunk) => string)` |
| CLI: | `--sourcemapFileNames <pattern>` |

查看 [`output.chunkFileNames`](#output-chunkfilenames) 以了解 `PreRenderedChunk` 类型。

该选项指定 sourcemap 的模式,或者是一个根据每个 sourcemap 调用以返回此类模式的函数。该模式支持以下占位符:

Expand Down
Loading
Loading