source-map-loader
Extracts source maps from existing source files (from their sourceMappingURL).
Getting Started
To begin, you'll need to install source-map-loader:
npm i -D source-map-loaderThen add the plugin to your webpack config. For example:
file.js
import css from 'file.css';webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: ['source-map-loader'],
},
],
},
};The source-map-loader extracts existing source maps from all JavaScript entries.
This includes both inline source maps as well as those linked via URL.
All source map data is passed to webpack for processing as per a chosen source map style specified by the devtool option in webpack.config.js.
This loader is especially useful when using 3rd-party libraries having their own source maps.
If not extracted and processed into the source map of the webpack bundle, browsers may misinterpret source map data. source-map-loader allows webpack to maintain source map data continuity across libraries so ease of debugging is preserved.
The source-map-loader will extract from any JavaScript file, including those in the node_modules directory.
Be mindful in setting include and exclude rule conditions to maximize bundling performance.
And run webpack via your preferred method.
Options
| Name | Type | Default | Description |
|---|---|---|---|
filterSourceMappingUrl |
{Function} |
undefined |
Allows to control SourceMappingURL behaviour |
filterSourceMappingUrl
Type: Function
Default: undefined
Allows you to specify the behavior of the loader for SourceMappingURL comment.
The function must return one of the values:
trueor'consume'- consume the source map and removeSourceMappingURLcomment (default behavior)falseor'remove'- do not consume the source map and removeSourceMappingURLcommentskip- do not consume the source map and do not removeSourceMappingURLcomment
Example configuration:
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: [
{
loader: 'source-map-loader',
options: {
filterSourceMappingUrl: (url, resourcePath) => {
if (/broker-source-map-url\.js$/i.test(url)) {
return false;
}
if (/keep-source-mapping-url\.js$/i.test(resourcePath)) {
return 'skip';
}
return true;
},
},
},
],
},
],
},
};Examples
Ignoring Warnings
To ignore warnings, you can use the following configuration:
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: ['source-map-loader'],
},
],
},
stats: {
warningsFilter: [/Failed to parse source map/],
},
};More information about the warningsFilters option you can find here;
Contributing
Please take a moment to read our contributing guidelines if you haven't yet done so.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
