cleanJsBuildArtifacts
Remove build artifact comments from compiled JavaScript files, including source maps, regions, and ESLint directives.
Overview
cleanJsBuildArtifacts is a utility for cleaning compiled JavaScript files by removing unnecessary build artifact comments.
It processes files based on the provided pattern(s) and removes:
-
Source path comments (e.g.
//# sourceURL=...)- Removes comment lines that reference file paths containing
src/ornode_modules/, commonly emitted by bundlers or transpilers. - Supports relative paths (
./,../), varying depths, and optional whitespace.
- Removes comment lines that reference file paths containing
-
ESLint directive comments (e.g.
/* eslint-disable */)- Removes inline ESLint control comments used during development, including rule overrides and file-level directives.
- Supports common patterns such as
eslint-disable,eslint-enable, andeslint-disable-next-line.
-
Source map references (e.g.
//# sourceMappingURL=...,//@ sourceMappingURL=...)- Removes inline comments that reference external source map files.
➔ See option:removeSourceMap.
- Removes inline comments that reference external source map files.
-
Source region comments (e.g.
// #region,// #endregion,//#region,//#endregion)- Removes region markers commonly added by editors or build tools.
➔ See option:removeRegion.
- Removes region markers commonly added by editors or build tools.
Why use this?
- Prepares clean files for production or distribution.
- Removes development-only artifacts from build outputs.
- Helps reduce bundle noise and improve maintainability.
Importing
Syntax
Parameters
Prop
Type
pattern
Glob pattern or list of patterns that target JavaScript output files.
Accepted values:
string➔ single glob pattern.string[]➔ multiple glob patterns.Set<string>➔ unique collection of patterns.
Supported glob features
Patterns support common glob syntax, including:
*➔ match any characters except/.**➔ match nested directories.{}➔ brace expansion (match multiple extensions or patterns).!➔ exclude patterns (can be combined withoptions.patternOptions.ignore).
Info
Pattern resolution behavior can be customized via options.patternOptions (e.g. hidden files, case sensitivity, concurrency, and ignore rules).
File Matching Behavior
- This utility only processes files that match recognized JavaScript build output formats.
- This filtering is applied after pattern matching.
- Supported file types include:
.js..mjs..cjs..esm.js..module.js.
Files that do not match these formats will be automatically ignored, even if they are included in the provided pattern.
dist/index.js➔ ✅ processed.dist/index.ts➔ ❌ ignored.dist/styles.css➔ ❌ ignored.dist/index.js.map➔ ❌ ignored.
Examples
options
Optional configuration object that defines how the utility function should behave in various scenarios, allowing customization and greater control at runtime.
removeSourceMap
-
Description:
Whether to remove source map reference comments (sourceMappingURL) from output files.Detects and removes inline comments that reference source map files, including variations with optional whitespace, different comment prefixes (
//#or//@), and different file extensions.Common example matches include:
-
Required:
-
Type:
boolean -
Default:
false -
Example:
TypeScript/JavaScript
removeRegion
-
Description:
Whether to remove source region marker comments (e.g.#region,#endregion) from output files.Detects and removes single-line region markers commonly used for code folding and logical section grouping.
Supports variations with leading whitespace, optional spacing between//and#, and trailing text.Common example matches include:
Notes
- Matches both opening (
#region) and closing (#endregion) markers. - Ignores invalid patterns such as
#regionX.
- Matches both opening (
-
Required:
-
Type:
boolean -
Default:
true -
Example:
TypeScript/JavaScript
removeAdjacentEmptyLines
-
Description:
Whether to remove empty lines that appear adjacent to removed comments.Cleans up leftover blank lines after comment removal to keep output files compact and visually consistent.
Targets lines that contain only whitespace (e.g. spaces or tabs) or are completely empty.Note
- Matches empty or whitespace-only lines.
- Preserves lines that contain any visible characters.
- Typically applied after comment removal (e.g. source maps, regions, etc.).
-
Required:
-
Type:
boolean -
Default:
false -
Example:
dist/index.js (Before) TypeScript/JavaScript (Usage) dist/index.js (After)
logLevel
-
Description:
Controls how detailed the logger output should be during execution.Supported values
silent➔ no output.error➔ errors only.info➔ standard logs (default).debug➔ verbose logs.
Notes
- Invalid values are automatically reset to default.
- All levels include error output except
silent.
-
Required:
-
Type:
"error"|"silent"|"info"|"debug" -
Default:
"info" -
Example:
TypeScript/JavaScript
patternOptions
-
Description:
Controls how input file patterns are matched.Used to filter or adjust which files are included during processing.
Useful for ignoring files, handling hidden files, or tweaking matching behavior.Behavior
- Affects which files are selected.
- Can exclude unwanted files (e.g. test files).
- Falls back to default configuration when invalid type or not provided.
-
Required:
-
Type:
object -
Default:
-
Example:
TypeScript/JavaScript
Returns
Returns a Promise<void>.
The function performs asynchronous file processing and does not return any value.
Version information
- Since:
v0.0.7. - Category:
clean. - Stability: ✅
Stable(Production-ready).
