source-map-loader

免责声明:source-map-loader 是由社区成员维护的第三方包,它可能没有与 webpack 相同的支持、安全策略或许可证,并且它不是由 webpack 维护的。

npm node tests coverage discussion size

从现有源文件中提取源映射(从其 sourceMappingURL 中提取)。

入门

首先,你需要安装 source-map-loader

npm i -D source-map-loader

yarn add -D source-map-loader

pnpm add -D source-map-loader

然后将插件添加到你的 webpack 配置中。例如

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 从所有 JavaScript 条目中提取现有的源映射。这包括内联源映射和通过 URL 链接的源映射。所有源映射数据都将传递给 webpack 进行处理,按照 devtool 选项在 webpack.config.js 中指定的 源映射样式 进行处理。在使用具有自己的源映射的第三方库时,此加载器特别有用。如果没有提取并处理到 webpack 捆绑包的源映射中,浏览器可能会错误解释源映射数据。source-map-loader 允许 webpack 在库之间保持源映射数据连续性,从而保留调试的简便性。source-map-loader 将从任何 JavaScript 文件中提取,包括 node_modules 目录中的文件。在设置 includeexclude 规则条件时要小心,以最大化捆绑性能。

然后通过你首选的方法运行 webpack

选项

名称类型默认值描述
filterSourceMappingUrl{Function}undefined允许控制 SourceMappingURL 行为

filterSourceMappingUrl

类型:Function 默认值:undefined

允许你为 SourceMappingURL 注释指定加载器的行为。

该函数必须返回以下值之一

  • true'consume' - 使用源映射并移除 SourceMappingURL 注释(默认行为)
  • false'remove' - 不使用源映射并移除 SourceMappingURL 注释
  • skip - 不使用源映射且不移除 SourceMappingURL 注释

示例配置

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

示例

忽略警告

要忽略警告,你可以使用以下配置

webpack.config.js

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

有关 ignoreWarnings 选项的更多信息,请参阅 此处

贡献

如果你还没有这样做,请花点时间阅读我们的贡献指南。

贡献

许可证

MIT