🐈

Next.js で本番環境だけ console.log 等を削除する

2024/09/28に公開

「デバッグ用に console.log 等を使用したいけど、本番環境ではコンソールに表示させたくない」といった場合に有用です。

console.* を削除する設定

next.config.js に以下の設定をすることで、アプリケーションコード内のすべての console.* を削除できます。(node_modules は除く)。 babel-plugin-transform-remove-console に似ています。

next.config.js
module.exports = {
  compiler: {
    removeConsole: true,
  },
}

本番環境だけ削除する

環境変数 NODE_ENVproduction の場合だけ削除します。

next.config.js
module.exports = {
  compiler: {
    removeConsole: process.env.NODE_ENV === 'production',
  },
}

補足

本番環境だけ console.error 以外を削除する、等の設定もできます。

next.config.js
module.exports = {
  compiler: {
    removeConsole:
      process.env.NODE_ENV === "production"
        ? {
            exclude: ["error"],
          }
        : false,
  },
}

https://nextjs.org/docs/architecture/nextjs-compiler#remove-console

Discussion