是否可以从 webpack 源映射中删除 "sourcesContent"?
Is it possible to remove "sourcesContent" from webpack source maps?
我们正在开发大型 React 应用程序,我们的 webpack 构建生成的源映射已超过 12MB。这似乎导致了 Chrome 开发工具间歇性解析失败(Failed to parse SourceMap
错误)的问题。
我们现在正在从本地文件系统加载源文件,并更改了 webpack 配置以更改引用位置,如下所示:
output: {
devtoolModuleFilenameTemplate: "file://[absolute-resource-path]",
devtoolFallbackModuleFilenameTemplate: "file://[absolute-resource-path]?[hash]",
}
这工作正常,devtools 现在从文件系统加载源文件,但它不会阻止它们被编译到 "sourcesContent"
下的源映射中。我在文档中找不到任何参考,而且似乎没有关闭它的选项。
毕竟有一种新的(ish)undocumented(在撰写本文时)方法可以用 webpack 做到这一点,webpack.SourceMapDevToolPlugin
的 noSources
选项:
const webpackConfig = {
devtool: false,
plugins: [
new webpack.SourceMapDevToolPlugin( {
moduleFilenameTemplate: 'file://[absolute-resource-path]',
fallbackModuleFilenameTemplate: 'file://[absolute-resource-path]?[hash]',
noSources: true
} )
],
...
};
在 webpack 配置中还有 devtool
的 nosources-source-map
选项,它创建没有源内容的源 (docs):
{
...
devtool: "nosources-source-map"
}
我们正在开发大型 React 应用程序,我们的 webpack 构建生成的源映射已超过 12MB。这似乎导致了 Chrome 开发工具间歇性解析失败(Failed to parse SourceMap
错误)的问题。
我们现在正在从本地文件系统加载源文件,并更改了 webpack 配置以更改引用位置,如下所示:
output: {
devtoolModuleFilenameTemplate: "file://[absolute-resource-path]",
devtoolFallbackModuleFilenameTemplate: "file://[absolute-resource-path]?[hash]",
}
这工作正常,devtools 现在从文件系统加载源文件,但它不会阻止它们被编译到 "sourcesContent"
下的源映射中。我在文档中找不到任何参考,而且似乎没有关闭它的选项。
毕竟有一种新的(ish)undocumented(在撰写本文时)方法可以用 webpack 做到这一点,webpack.SourceMapDevToolPlugin
的 noSources
选项:
const webpackConfig = {
devtool: false,
plugins: [
new webpack.SourceMapDevToolPlugin( {
moduleFilenameTemplate: 'file://[absolute-resource-path]',
fallbackModuleFilenameTemplate: 'file://[absolute-resource-path]?[hash]',
noSources: true
} )
],
...
};
在 webpack 配置中还有 devtool
的 nosources-source-map
选项,它创建没有源内容的源 (docs):
{
...
devtool: "nosources-source-map"
}