Skip to content

Latest commit

 

History

History
233 lines (185 loc) · 5.28 KB

README.md

File metadata and controls

233 lines (185 loc) · 5.28 KB

npm node deps tests coverage chat size

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-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.

Options

brokenMapUrlReportType

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',
            },
          },
        ],
      },
    ],
  },
};

brokenMapParseReportType

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',
            },
          },
        ],
      },
    ],
  },
};

brokenSourceUrlReportType

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',
            },
          },
        ],
      },
    ],
  },
};

unresolveSourceFetcher

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`);
              },
            },
          },
        ],
      },
    ],
  },
};

Contributing

Please take a moment to read our contributing guidelines if you haven't yet done so.

CONTRIBUTING

License

MIT