Extracts source maps from existing source files (from their sourceMappingURL
).
To begin, you'll need to install source-map-loader
:
npm i -D source-map-loader
Then 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'],
},
],
},
};
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.
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.
Type: String
Default: warning
Type of error message, when the map failed to load.
Possible values:
ignore
warning
error
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: [
{
loader: 'source-map-loader',
options: {
brokenMapUrlReportType: 'ignore',
},
},
],
},
],
},
};
Type: String
Default: warning
Type of error message, when the card is received, but cannot be correctly parsed.
Possible values:
ignore
warning
error
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: [
{
loader: 'source-map-loader',
options: {
brokenMapParseReportType: 'ignore',
},
},
],
},
],
},
};
Type: String
Default: warning
Type of error message, when the source (from map.sources
) failed to load.
Possible values:
ignore
warning
error
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: [
{
loader: 'source-map-loader',
options: {
brokenSourceUrlReportType: 'ignore',
},
},
],
},
],
},
};
Type: Function
Default: undefined
The option allows you to fetching the remote content.
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: 'pre',
use: [
{
loader: 'source-map-loader',
options: {
async unresolveSourceFetcher(url) {
if (/^https?:\/\//i.test(url)) {
const response = await fetch(url);
const result = await response.text();
return result;
}
throw new Error(`${url} is not supported`);
},
},
},
],
},
],
},
};
Please take a moment to read our contributing guidelines if you haven't yet done so.