Webpack 5:devtool ValidationError,无效的配置对象

Webpack 5: devtool ValidationError, invalid configuration object

从 Webpack 4 迁移到 Webpack 5 时,我在使用空值 devtool 时遇到错误(仅在生产模式下)。

module.exports = {
    devtool: isProd ? '' : 'source-map',
    // entry: ...
    // output: ...
    // module: ...
}

控制台中的消息:

ValidationError: Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.
 - configuration.devtool should match pattern "^(inline-|hidden-|eval-)?(nosources-)?(cheap-(module-)?)?source-map$".
   BREAKING CHANGE since webpack 5: The devtool option is more strict.
   Please strictly follow the order of the keywords in the pattern.

关于如何在生产模式下避免源地图的任何想法?在那里输入什么?

回答自己的问题!剧透:false.

module.exports = {
    devtool: isProd ? false : 'source-map',
}

在 Webpack 4 中,可以使用空字符串对其进行赋值。 webpack 5 更加严格。 Webpacks devtool configuration.

我的 "source-map" 中有一个 # 像 "#source-map" 一样导致了这个错误。通过从字符串中删除 # 解决了错误。

之前:

devtool: (config.enabled.sourceMaps ? '#source-map' : false)

之后:

devtool: (config.enabled.sourceMaps ? 'source-map' : false)