如何在 Gatsby v2 的生产环境中关闭源地图?

How do I turn off source maps in production in Gatsby v2?

我正在努力如何为生产禁用源映射,因为默认的 Webpack 设置是省略 devtool 选项,但 Gatsby v2 启用它。我试着想出一种基于旧版本和新文档的方法,但它不起作用:

// gatsby-node.js
exports.onCreateWebpackConfig = ({ actions, stage }) => {
  if (stage === 'build-javascript') {
    // turn off source-maps
    actions.setWebpackConfig({
      devtool: false
    })
  }
};

问题中的代码是正确的解决方案。问题在于 Gatsby 不会在每次构建时删除 /public/ 文件夹,因此之前创建的源映射仍然存在。因此,首先删除该文件夹,然后 运行 构建步骤。

以上解决方案有效。还有另一种选择使用 gatsby 插件 gatsby-plugin-no-sourcemaps

先安装插件

npm i gatsby-plugin-no-sourcemaps

之后转到项目根目录中的 gatsby-config.js

将其添加到插件数组中

gatsby-plugin-no-sourcemaps

转到 public 文件夹,删除所有文件。 运行 再次构建命令 gatsby build。现在构建将没有 .map 文件。

gatsby-config.js 看起来像这样。