Socket
Socket
Sign inDemoInstall

source-map-loader

Package Overview
Dependencies
80
Maintainers
3
Versions
29
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    source-map-loader

extracts inlined source map and offers it to webpack


Version published
Weekly downloads
6.9M
decreased by-1.89%
Maintainers
3
Install size
561 kB
Created
Weekly downloads
 

Package description

What is source-map-loader?

The source-map-loader package is used to load source map data from existing source files. It extracts source maps from the source files (like JavaScript files) when they are included in the webpack build process. This allows for better debugging capabilities because the browser developer tools can map the generated code back to the original source code, which is particularly useful when working with transpiled languages or minified code.

What are source-map-loader's main functionalities?

Extracting source maps

This webpack configuration snippet demonstrates how to use source-map-loader to extract source maps from JavaScript files before they are processed by other loaders. The 'enforce: pre' property ensures that the source-map-loader runs before other loaders.

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        use: ['source-map-loader'],
        enforce: 'pre'
      }
    ]
  }
};

Other packages similar to source-map-loader

Changelog

Source

5.0.0 (2024-01-15)

⚠ BREAKING CHANGES

  • minimum supported Node.js version is 18.12.0 (#230) (7fcab17)

Readme

Source

npm node tests coverage discussion 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

or

yarn add -D source-map-loader

or

pnpm add -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"],
      },
    ],
  },
};

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

NameTypeDefaultDescription
filterSourceMappingUrl{Function}undefinedAllows 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:

  • true or 'consume' - consume the source map and remove SourceMappingURL comment (default behavior)
  • false or 'remove' - do not consume the source map and remove SourceMappingURL comment
  • skip - do not consume the source map and do not remove SourceMappingURL 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

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

CONTRIBUTING

License

MIT

Keywords

FAQs

Last updated on 15 Jan 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc