Skip to content
PluginStats

webpack-string-replacer weekly downloads statistics

By Venryx · npm · Webpack plugins

Replace strings in webpack modules, with configurable apply-stage and match-count requirements.

View on npm Fresh · Oct 17, 2026

webpack-string-replacer has 259 recorded weekly downloads on npm, a decrease of 73.0% over the past 30 days.

It ranks #1563 of 2,251 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by -71.2%.

PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.

Weekly downloads
259
Official API · Oct 17, 2026
7-day growth
-63.4%
-448 weekly downloads
30-day growth
-73.0%
-700 weekly downloads
90-day growth
-71.2%
-640 weekly downloads
Rank
#1563
Among tracked npm listings

About webpack-string-replacer

Webpack String Replacer

Replace strings in webpack modules, with configurable apply-stage and match-count requirements.

Installation

Usage

Basic example:

Advanced example:

Options

If you prefer viewing the raw TypeScript typings, you can open the "Source/Options.ts" file, or the "Dist/*.d.ts" files.

shouldValidate - bool | ({compilations: Compilation[]})=>bool

If set, the validations (eg. match-count requirements) will only be run when the condition is met (at the end of a compilation run).

validationLogType - "error" | "logError" | "logWarning" | "log"

What type of logging to use for validation failures, eg. match-count not being met. (error: throw new Error(...), the others: console.X(...))

ruleBase - Partial

If set, each rule will "inherit" from the options specified here.

replacementBase - Partial

If set, each replacement entry will "inherit" from the options specified here.

rules - Rule[]

Array of rules. (see below)

rules.X.applyStage - "loader" | "optimizeModules" | "optimizeChunkAssets"

loader (early) > Time: Applies before other loaders or plugins have modified the source files. > File basis: Replacements at this stage operate on the source-files, so include/exclude is based on source files (or chunk names), not the output files. > Example: Applies on original typescript source files, before typescript and babel have applied their transformations. > Compatibility: Using this mode prohibits use of the "outputFileInclude" and "outputFileExclude" props, since they can't be applied.

optimizeModules (middle) > Time: Applies after loaders, but alongside some other plugins (depends on exact hooks used, and plugin order). > File basis: Replacements at this stage operate on partially modified files. Include/exclude is still based on source files (or chunk names) though, not the output files. > Example: For Babel, there seems to currently be a conflict where Babel has only "partially applied" on certain files, leading to text malformations. (eg. if modifying webpack/hot/dev-server.js) > Compatibility: Using this mode prohibits use of the "outputFileInclude" and "outputFileExclude" props, since they can't be applied.

optimizeChunkAssets (late) > Time: Applies briefly before the output-files are actually emitted (eg. written to disk). > File basis: Replacements at this stage operate on the output-files, so include/exclude is based on output files (or chunk names), not the source files. > Example: Applies on the outputs of typescript and babel. (Chrome devtools, with sourcemaps disabled, can be used to help construct the replacements) > Compatibility: Using this mode prohibits use of the "fileInclude" and "fileExclude" props, since they can't be applied.

rules.X.chunkInclude - bool | {name: string} - or array of these

Identifies chunks to be included. (includes, then filters/excludes)

Examples: "main", "vendor"

Note: Chunk inclusion/exclusion might not work how you expect. Webpack seems to process chunks differently internally (eg. grouping them together more) than one would assume based on defined entry points and such. It's usually easier to use output-file inclusion/exclusion, as it has a clear output-file meaning/boundary.

rules.X.chunkExclude - bool | {name: string} - or array of these

Identifies chunks to be excluded. (includes, then filters/excludes)

rules.X.chunkMatchCount - number | {min?: number, max?: number}

Examples: 1, {min: 3, max: 5}

rules.X.outputFileInclude - bool | string | regex | function - or array of these

Identifies output-files to be included. (includes, then filters/excludes)

Examples: "bundle.js", "vendorBundle.js"

rules.X.outputFileExclude - bool | string | regex | function - or array of these

Identifies output-files to be excluded. (includes, then filters/excludes)

Examples: "bundle.js", "vendorBundle.js"

rules.X.outputFileMatchCount - number | {min?: number, max?: number}

Checked against the number of output-file matches, in all (unignored) chunks. (condition must be met for at least one compilation)

Examples: (see rules.X.chunkMatchCount)

rules.X.fileInclude - bool | string | regex | function - or array of these

Identifies files to be included. (includes, then filters/excludes)

Examples: true, string to contain, /regex to contain match for/, str=>CustomMatchLogic(str)

rules.X.fileExclude - bool | string | regex | function - or array of these

Identifies files to be excluded. (includes, then filters/excludes)

Examples: (see rules.X.fileInclude)

rules.X.fileMatchCount - number | {min?: number, max?: number}

Checked against the number of file matches, in all (unignored) chunks. (condition must be met for at least one compilation)

Examples: (see rules.X.chunkMatchCount)

rules.X.logFileMatches - bool

If true, files matches by rule will have their paths logged for inspection.

rules.X.logFileMatchContents - bool | number

If set, files matches by rule will have their contents logged for inspection. (if true: the whole file; if number: the first X characters)

rules.X.replacements - Replacement[]

Array of replacements. (see below)

rules.X.replacements.X.pattern - string

Examples: "string to match", /regex(p?) to match/g

rules.X.replacements.X.patternMatchCount - number | {min?: number, max?: number}

Checked against the number of pattern matches, in all (unignored) chunks/files within the compilation. (condition must be met for at least one compilation)

Examples: (see rules.X.chunkMatchCount)

logAroundPatternMatches - number

If set, locations where patterns are matched will have X characters of the source code (before and after) logged for inspection. (not yet compatible with optimizeChunkAssets)

rules.X.replacements.X.replacement

Examples: "new value", matchedStr=>matchedStr + "new portion"

Alternatives

If this particular implementation of plugin-based string-replacement doesn't suit your needs, here's a list of alternatives:

General-purpose string replacement…

Description from the npm listing.

  • webpack
  • plugin
  • webpack-plugin
  • bundle
  • content
  • text
  • string
  • token
  • find
  • replace
  • replacer

Where webpack-string-replacer sits in the listing

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

All npm2,248 listings · 113 pages · page 79, #4 (overall #1564)
All npm: every listing in weekly downloads order
PNG SVG
Webpack plugins247 listings · 13 pages · page 4, #18 (overall #78)
Webpack plugins: every listing in weekly downloads order
PNG SVG

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

webpack-string-replacer weekly downloads on npm, last 90 days: 259 weekly downloads as of Oct 17, 2026, -71.2% over 90 days.webpack-string-replacerWeekly downloads on npm · Last 90 days259downloads / week-71.2% over 90 days02004006008001K1.2K1.4K1.6KJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 20, 2026 – Oct 17, 2026 · 90 observations · Updated Oc…pluginstats.com
webpack-string-replacer weekly downloads on npm, last 90 days: 259 weekly downloads as of Oct 17, 2026, -71.2% over 90 days.
PNG SVG

7/30/90-day growth

webpack-string-replacer weekly downloads growth on npm: -63.4% over 7 days, -73.0% over 30 days, -71.2% over 90 days.webpack-string-replacerWeekly downloads growth on npm259downloads / week now7-day growth-448 weekly downloads-63.4%30-day growth-700 weekly downloads-73.0%90-day growth-640 weekly downloads-71.2%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
webpack-string-replacer weekly downloads growth on npm: -63.4% over 7 days, -73.0% over 30 days, -71.2% over 90 days.
PNG SVG

Ranking history

webpack-string-replacer npm ranking history: currently #1563 (by weekly downloads).webpack-string-replacernpm ranking · by weekly downloads · Last 90 days#1563current rank#1561#1562#1563#1564#1565Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18rankOct 18, 2026 – Oct 18, 2026 · 1 observations · Updated Oct 17, 2026pluginstats.com
webpack-string-replacer npm ranking history: currently #1563 (by weekly downloads).
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Recent observations

Full history (121)
Recent weekly downloads observations for webpack-string-replacer
Date (UTC)Weekly downloadsChange vs. previous
259-51
310-33
343-174
517-140
6570
657-97
754+47
707+19
688+9
679+62
617-73
690-369
1,059-53
1,112—

Similar npm Webpack plugins plugins

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/webpack-string-replacer. First seen Oct 16, 2026; last successful collection Oct 18, 2026. See the methodology.