从现有源文件中提取源映射(从其 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
目录中的文件。在设置 include 和 exclude 规则条件时要小心,以最大化捆绑性能。
然后通过你首选的方法运行 webpack
。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
filterSourceMappingUrl | {Function} | undefined | 允许控制 SourceMappingURL 行为 |
类型: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
选项的更多信息,请参阅 此处
如果你还没有这样做,请花点时间阅读我们的贡献指南。