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 @ 642e5662 #59

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading