CARVIEW |
- Install
- Usage
- Troubleshooting
- Enable debug mode logging
- babel-loader is slow!
- Some files in my node_modules are not transpiled for IE 11
- Babel is injecting helpers into each file and bloating my code!
- The Node.js API for babel has been moved to babel-core.
- Exclude libraries that should not be transpiled
- Top level function (IIFE) is still arrow (on Webpack 5)
- Customize config based on webpack target
- Customized Loader
- License
source-map-loader
Extracts source maps from existing source files (from their <code>sourceMappingURL</code>
).
Getting Started
To begin, you'll need to install source-map-loader
:
npm i -D source-map-loader
or
yarn add -D source-map-loader
or
pnpm add -D source-map-loader
Then 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).
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 following values:
true
or'consume'
- consume the source map and removeSourceMappingURL
comment (default behavior)false
or'remove'
- do not consume the source map and removeSourceMappingURL
commentskip
- do not consume the source map and do not removeSourceMappingURL
comment
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"],
},
],
},
ignoreWarnings: [/Failed to parse source map/],
};
More information about the ignoreWarnings
option can be found here
Contributing
We welcome all contributions! If you're new here, please take a moment to review our contributing guidelines before submitting issues or pull requests.