Please use https://github.com/webpack/webpack/tree/main/examples/source-mapping-url
Extracts source maps from existing source files (from their <code>sourceMappingURL</code>).
To begin, you'll need to install source-map-loader:
npm i -D source-map-loaderor
yarn add -D source-map-loaderor
pnpm add -D source-map-loaderThen add the loader to your webpack configuration. 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 a sourceMappingURL.
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 third-party libraries having their own source maps. If not extracted and processed into the source map of the webpack bundle, browsers may misinterpret or ignore source map data.
The 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.
Finally, run webpack using the method you normally use (e.g., via CLI or an npm script).
| Name | Type | Default | Description |
|---|---|---|---|
filterSourceMappingUrl |
{Function} |
undefined |
Allows to control SourceMappingURL behaviour |
Type: Function
Default: undefined
Allows you to specify the behavior of the loader for SourceMappingURL comment.
The function must return one of the following 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;
},
},
},
],
},
],
},
};To ignore warnings, you can use the following configuration:
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: "pre",
use: ["source-map-loader"],
},
],
},
ignoreWarnings: [/Failed to parse source map/],
};More information about the ignoreWarnings option can be found here
We welcome all contributions! If you're new here, please take a moment to review our contributing guidelines before submitting issues or pull requests.