Nuxt.jsの本番環境でconsole.logを排除する方法

開発時にconsole.log()で表示していた重大な情報をそのままに本番環境にデプロイしてしまうと非常に危険です。それを避けるべく、開発モード(development)ではconsole.log()は残し、本番モード(production)ではそれを削除する方法を紹介します。
なお、Nuxtバージョンは2系のみで動作します。

サンプルコード

module.exports = {
  // ~ 略 ~
  build: {
    // ~ 略 ~
    terser: {
      terserOptions: {
        compress: {
          drop_console: process.env.NODE_ENV == "production"
        }
      }
    }
  }
}

補足

NODE_ENVって?

NODE_ENVは、Node.jsで使われる環境変数です。
指定した内容に基づいた環境設定の動作を反映させることができます。

development 開発環境
production 本番環境

使用例

if (process.env.NODE_ENV == "development") {
  // 開発環境
} else if (process.env.NODE_ENV == "production") {
  // 本番環境
} else {
  // その他テスト環境等
}

コメント