Skip to content

Commit

Permalink
docs(en): merging all conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
docschina-bot committed Sep 6, 2023
2 parents dda9dc7 + 642e566 commit 8f5a881
Show file tree
Hide file tree
Showing 61 changed files with 467 additions and 31 deletions.
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# rollup changelog

## 3.29.0

_2023-09-06_

### Features

- Add output.sourcemapFileNames option (#5105)
- Add generic type parameter for `api` to Plugin type (#5112)

### Bug Fixes

- Ensure mutations of CustomEvent details are tracked (#5123)

### Pull Requests

- [#5105](https://github.com/rollup/rollup/pull/5105): Added option to name sourcemap files, i.e. a output.sourcemapFileName… (@atti187)
- [#5108](https://github.com/rollup/rollup/pull/5108): chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
- [#5109](https://github.com/rollup/rollup/pull/5109): Docs: load full path of rollup.browser.js for Rollup V4 (@TrickyPi)
- [#5112](https://github.com/rollup/rollup/pull/5112): feat(types): add generic type for plugin api (@sxzz)
- [#5115](https://github.com/rollup/rollup/pull/5115): chore(deps): lock file maintenance minor/patch updates (@renovate[bot])
- [#5123](https://github.com/rollup/rollup/pull/5123): Deoptimize custom event detail (@lukastaegert)

## 3.28.1

_2023-08-22_
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": "3.28.1",
"version": "3.29.0",
"description": "Next-generation ES module bundler browser build",
"main": "dist/rollup.browser.js",
"module": "dist/es/rollup.browser.js",
Expand Down
1 change: 1 addition & 0 deletions cli/help.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ Basic options:
--sourcemapBaseUrl <url> Emit absolute sourcemap URLs with given base
--sourcemapExcludeSources Do not include source code in source maps
--sourcemapFile <file> Specify bundle position for source maps
--sourcemapFileNames <pattern> Name pattern for emitted sourcemaps
--stdin=ext Specify file extension used for stdin input
--no-stdin Do not read "-" from stdin
--no-strict Don't emit `"use strict";` in the generated modules
Expand Down
94 changes: 94 additions & 0 deletions docs/command-line-interface/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ export default {
sourcemapBaseUrl,
sourcemapExcludeSources,
sourcemapFile,
sourcemapFileNames,
sourcemapIgnoreList,
sourcemapPathTransform,
validate,
Expand Down Expand Up @@ -356,6 +357,7 @@ export default {
许多选项都有等效的命令行标志。在这些情况下,如果你正在使用配置文件,则此处传递的任何参数都将覆盖配置文件。以下是所有支持的选项列表:
```
<<<<<<< HEAD
-c, --config <filename> 使用此配置文件
(如果使用参数但未指定值,则默认为 rollup.config.js
-d, --dir <dirname> 用于块的目录(如果不存在,则打印到 stdout)
Expand Down Expand Up @@ -445,6 +447,98 @@ export default {
--watch.onError <cmd>"ERROR" 事件上运行的 Shell 命令
--watch.onStart <cmd>"START" 事件上运行的 Shell 命令
--watch.skipWrite 在监视时不要将文件写入磁盘
=======
-c, --config <filename> Use this config file (if argument is used but value
is unspecified, defaults to rollup.config.js)
-d, --dir <dirname> Directory for chunks (if absent, prints to stdout)
-e, --external <ids> Comma-separate list of module IDs to exclude
-f, --format <format> Type of output (amd, cjs, es, iife, umd, system)
-g, --globals <pairs> Comma-separate list of `moduleID:Global` pairs
-h, --help Show this help message
-i, --input <filename> Input (alternative to <entry file>)
-m, --sourcemap Generate sourcemap (`-m inline` for inline map)
-n, --name <name> Name for UMD export
-o, --file <output> Single output file (if absent, prints to stdout)
-p, --plugin <plugin> Use the plugin specified (may be repeated)
-v, --version Show version number
-w, --watch Watch files in bundle and rebuild on changes
--amd.autoId Generate the AMD ID based off the chunk name
--amd.basePath <prefix> Path to prepend to auto generated AMD ID
--amd.define <name> Function to use in place of `define`
--amd.forceJsExtensionForImports Use `.js` extension in AMD imports
--amd.id <id> ID for AMD module (default is anonymous)
--assetFileNames <pattern> Name pattern for emitted assets
--banner <text> Code to insert at top of bundle (outside wrapper)
--chunkFileNames <pattern> Name pattern for emitted secondary chunks
--compact Minify wrapper code
--context <variable> Specify top-level `this` value
--no-dynamicImportInCjs Write external dynamic CommonJS imports as require
--entryFileNames <pattern> Name pattern for emitted entry chunks
--environment <values> Settings passed to config file (see example)
--no-esModule Do not add __esModule property
--exports <mode> Specify export mode (auto, default, named, none)
--extend Extend global variable defined by --name
--no-externalImportAssertions Omit import assertions in "es" output
--no-externalLiveBindings Do not generate code to support live bindings
--failAfterWarnings Exit with an error if the build produced warnings
--filterLogs <filter> Filter log messages
--footer <text> Code to insert at end of bundle (outside wrapper)
--no-freeze Do not freeze namespace objects
--generatedCode <preset> Which code features to use (es5/es2015)
--generatedCode.arrowFunctions Use arrow functions in generated code
--generatedCode.constBindings Use "const" in generated code
--generatedCode.objectShorthand Use shorthand properties in generated code
--no-generatedCode.reservedNamesAsProps Always quote reserved names as props
--generatedCode.symbols Use symbols in generated code
--no-hoistTransitiveImports Do not hoist transitive imports into entry chunks
--no-indent Don't indent result
--inlineDynamicImports Create single bundle when using dynamic imports
--no-interop Do not include interop block
--intro <text> Code to insert at top of bundle (inside wrapper)
--logLevel <level> Which kind of logs to display
--no-makeAbsoluteExternalsRelative Prevent normalization of external imports
--maxParallelFileOps <value> How many files to read in parallel
--minifyInternalExports Force or disable minification of internal exports
--noConflict Generate a noConflict method for UMD globals
--outro <text> Code to insert at end of bundle (inside wrapper)
--perf Display performance timings
--no-preserveEntrySignatures Avoid facade chunks for entry points
--preserveModules Preserve module structure
--preserveModulesRoot Put preserved modules under this path at root level
--preserveSymlinks Do not follow symlinks when resolving files
--no-sanitizeFileName Do not replace invalid characters in file names
--shimMissingExports Create shim variables for missing exports
--silent Don't print warnings
--sourcemapBaseUrl <url> Emit absolute sourcemap URLs with given base
--sourcemapExcludeSources Do not include source code in source maps
--sourcemapFile <file> Specify bundle position for source maps
--sourcemapFileNames <pattern> Name pattern for emitted sourcemaps
--stdin=ext Specify file extension used for stdin input
--no-stdin Do not read "-" from stdin
--no-strict Don't emit `"use strict";` in the generated modules
--strictDeprecations Throw errors for deprecated features
--no-systemNullSetters Do not replace empty SystemJS setters with `null`
--no-treeshake Disable tree-shaking optimisations
--no-treeshake.annotations Ignore pure call annotations
--treeshake.correctVarValueBeforeDeclaration Deoptimize variables until declared
--treeshake.manualPureFunctions <names> Manually declare functions as pure
--no-treeshake.moduleSideEffects Assume modules have no side effects
--no-treeshake.propertyReadSideEffects Ignore property access side effects
--no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking
--no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw
--validate Validate output
--waitForBundleInput Wait for bundle input files
--watch.buildDelay <number> Throttle watch rebuilds
--no-watch.clearScreen Do not clear the screen when rebuilding
--watch.exclude <files> Exclude files from being watched
--watch.include <files> Limit watching to specified files
--watch.onBundleEnd <cmd> Shell command to run on `"BUNDLE_END"` event
--watch.onBundleStart <cmd> Shell command to run on `"BUNDLE_START"` event
--watch.onEnd <cmd> Shell command to run on `"END"` event
--watch.onError <cmd> Shell command to run on `"ERROR"` event
--watch.onStart <cmd> Shell command to run on `"START"` event
--watch.skipWrite Do not write files to disk when watching
>>>>>>> 642e56626a6b610465617eb1007f352f79eb4b86
```
以下标志仅通过命令行界面可用。所有其他标志都对应并覆盖其配置文件等效项,请参阅[选项大列表](../configuration-options/index.md)获取详细信息。
Expand Down
20 changes: 20 additions & 0 deletions docs/configuration-options/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1470,7 +1470,27 @@ export default {

如果 `output` 设置了值,那么 `sourcemapFile` 不是必须的,这种情况下,它的值会通过输出文件名中添加“.map”推断出来。

<<<<<<< HEAD
### output.sourcemapIgnoreList {#output-sourcemapignorelist}
=======
### output.sourcemapFileNames

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

The pattern to use for sourcemaps, or a function that is called per sourcemap to return such a pattern. Patterns support the following placeholders:

- `[format]`: The rendering format defined in the output options, e.g. `es` or `cjs`.
- `[hash]`: A hash based only on the content of the final generated sourcemap. You can also set a specific hash length via e.g. `[hash:10]`.
- `[chunkhash]`: The same hash as the one used for the corresponding generated chunk (if any).
- `[name]`: The file name (without extension) of the entry point, unless the object form of input was used to define a different name.

Forward slashes `/` can be used to place files in sub-directories. When using a function, `chunkInfo` is a reduced version of the one in [`generateBundle`](../plugin-development/index.md#generatebundle) without properties that depend on file names and no information about the rendered modules as rendering only happens after file names have been generated. You can however access a list of included `moduleIds`. See also [`output.assetFileNames`](#output-assetfilenames), [`output.chunkFileNames`](#output-chunkfilenames).

### output.sourcemapIgnoreList
>>>>>>> 642e56626a6b610465617eb1007f352f79eb4b86

| | |
| --: | :-- |
Expand Down
1 change: 1 addition & 0 deletions docs/javascript-api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ const outputOptions = {
sourcemapBaseUrl,
sourcemapExcludeSources,
sourcemapFile,
sourcemapFileNames,
sourcemapIgnoreList,
sourcemapPathTransform,
validate,
Expand Down
22 changes: 14 additions & 8 deletions docs/repl/stores/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -311,14 +311,14 @@ export const useOptions = defineStore('options2', () => {
available: optionOutputPreserveModules.value,
name: 'output.preserveModulesRoot'
});
const optionOutputSourcemap = getBoolean({
name: 'output.sourcemap'
});
const optionOutputSanitizeFileName = getBoolean({
available: alwaysTrue,
defaultValue: true,
name: 'output.sanitizeFileName'
});
const optionOutputSourcemap = getBoolean({
name: 'output.sourcemap'
});
const optionOutputSourcemapBaseUrl = getString({
available: optionOutputSourcemap.value,
name: 'output.sourcemapBaseUrl'
Expand All @@ -327,12 +327,22 @@ export const useOptions = defineStore('options2', () => {
available: optionOutputSourcemap.value,
name: 'output.sourcemapExcludeSources'
});
const optionOutputSourcemapFileNames = getString({
available: alwaysTrue,
defaultValue: undefined,
name: 'output.sourcemapFileNames'
});
const optionOutputStrict = getBoolean({
available: () =>
optionOutputFormat.value.value !== undefined && optionOutputFormat.value.value !== 'es',
defaultValue: true,
name: 'output.strict'
});
const optionOutputSystemNullSetters = getBoolean({
available: () => optionOutputFormat.value.value === 'system',
defaultValue: true,
name: 'output.systemNullSetters'
});
const optionOutputValidate = getBoolean({
name: 'output.validate'
});
Expand All @@ -342,11 +352,6 @@ export const useOptions = defineStore('options2', () => {
name: 'preserveEntrySignatures',
options: () => ['strict', 'allow-extension', 'exports-only', false]
});
const optionOutputSystemNullSetters = getBoolean({
available: () => optionOutputFormat.value.value === 'system',
defaultValue: true,
name: 'output.systemNullSetters'
});
const optionShimMissingExports = getBoolean({
defaultValue: false,
name: 'shimMissingExports'
Expand Down Expand Up @@ -436,6 +441,7 @@ export const useOptions = defineStore('options2', () => {
optionOutputPreserveModules,
optionOutputPreserveModulesRoot,
optionOutputSourcemap,
optionOutputSourcemapFileNames,
optionOutputSanitizeFileName,
optionOutputSourcemapBaseUrl,
optionOutputSourcemapExcludeSources,
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rollup",
"version": "3.28.1",
"version": "3.29.0",
"description": "Next-generation ES module bundler",
"main": "dist/rollup.js",
"module": "dist/es/rollup.js",
Expand Down
38 changes: 37 additions & 1 deletion src/Chunk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ export interface ChunkRenderResult {
chunk: Chunk;
magicString: MagicStringBundle;
preliminaryFileName: PreliminaryFileName;
preliminarySourcemapFileName: PreliminaryFileName | null;
usedModules: Module[];
}

Expand Down Expand Up @@ -187,6 +188,7 @@ export default class Chunk {
private needsExportsShim = false;
private preRenderedChunkInfo: PreRenderedChunk | null = null;
private preliminaryFileName: PreliminaryFileName | null = null;
private preliminarySourcemapFileName: PreliminaryFileName | null = null;
private renderedChunkInfo: RenderedChunk | null = null;
private renderedDependencies: Map<Chunk | ExternalChunk, ChunkDependency> | null = null;
private readonly renderedModules: {
Expand Down Expand Up @@ -328,6 +330,7 @@ export default class Chunk {
finalizeChunk(
code: string,
map: SourceMap | null,
sourcemapFileName: string | null,
hashesByPlaceholder: Map<string, string>
): OutputChunk {
const renderedChunkInfo = this.getRenderedChunkInfo();
Expand All @@ -349,7 +352,8 @@ export default class Chunk {
imports: renderedChunkInfo.imports.map(finalize),
map,
preliminaryFileName,
referencedFiles: renderedChunkInfo.referencedFiles.map(finalize)
referencedFiles: renderedChunkInfo.referencedFiles.map(finalize),
sourcemapFileName
};
}

Expand Down Expand Up @@ -544,6 +548,36 @@ export default class Chunk {
return (this.preliminaryFileName = { fileName, hashPlaceholder });
}

getPreliminarySourcemapFileName(): PreliminaryFileName | null {
if (this.preliminarySourcemapFileName) {
return this.preliminarySourcemapFileName;
}
let sourcemapFileName: string | null = null;
let hashPlaceholder: string | null = null;
const { sourcemapFileNames, format } = this.outputOptions;
if (sourcemapFileNames) {
const [pattern, patternName] = [sourcemapFileNames, 'output.sourcemapFileNames'];
sourcemapFileName = renderNamePattern(
typeof pattern === 'function' ? pattern(this.getPreRenderedChunkInfo()) : pattern,
patternName,
{
chunkhash: () => this.getPreliminaryFileName().hashPlaceholder || '',
format: () => format,
hash: size =>
hashPlaceholder || (hashPlaceholder = this.getPlaceholder(patternName, size)),
name: () => this.getChunkName()
}
);
if (!hashPlaceholder) {
sourcemapFileName = makeUnique(sourcemapFileName, this.bundle);
}
} else {
return null;
}

return (this.preliminarySourcemapFileName = { fileName: sourcemapFileName, hashPlaceholder });
}

public getRenderedChunkInfo(): RenderedChunk {
if (this.renderedChunkInfo) {
return this.renderedChunkInfo;
Expand Down Expand Up @@ -606,6 +640,7 @@ export default class Chunk {
}

const preliminaryFileName = this.getPreliminaryFileName();
const preliminarySourcemapFileName = this.getPreliminarySourcemapFileName();
const { accessedGlobals, indent, magicString, renderedSource, usedModules, usesTopLevelAwait } =
this.renderModules(preliminaryFileName.fileName);

Expand Down Expand Up @@ -670,6 +705,7 @@ export default class Chunk {
chunk: this,
magicString,
preliminaryFileName,
preliminarySourcemapFileName,
usedModules
};
}
Expand Down
12 changes: 11 additions & 1 deletion src/ast/nodes/shared/knownGlobals.ts
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,17 @@ const knownGlobals: GlobalDescription = {
CSSSupportsRule: C,
CustomElementRegistry: C,
customElements: O,
CustomEvent: C,
CustomEvent: {
__proto__: null,
[ValueProperties]: {
deoptimizeArgumentsOnCall({ args }: NodeInteractionCalled) {
args[2]?.deoptimizePath(['detail']);
},
getLiteralValue: getTruthyLiteralValue,
hasEffectsWhenCalled: returnFalse
},
prototype: O
},
DataTransfer: C,
DataTransferItem: C,
DataTransferItemList: C,
Expand Down
Loading

0 comments on commit 8f5a881

Please sign in to comment.