是否可以从 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.SourceMapDevToolPluginnoSources 选项:

const webpackConfig = {
    devtool: false,
    plugins: [
        new webpack.SourceMapDevToolPlugin( {
            moduleFilenameTemplate: 'file://[absolute-resource-path]',
            fallbackModuleFilenameTemplate: 'file://[absolute-resource-path]?[hash]',
            noSources: true
        } ) 
    ],
    ...
};

在 webpack 配置中还有 devtoolnosources-source-map 选项,它创建没有源内容的源 (docs):

{
  ...
  devtool: "nosources-source-map"
}