くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Nuxt.jsのproduction時にconsole.logを削除する

npm run buildしたときに、console.logとかをminify時に自動で削除してほしいと思ったときの備忘録。

Nuxt.jsのバージョンは、v2.2.0

nuxt.config.jsの設定

uglifyjs-webpack-pluginを使うようにした感じ。

const UglifyJsPlugin = require("uglifyjs-webpack-plugin");

module.exports = {
  build: {
    extend(config, { isDev }) {
      if (!isDev) {
        config.plugins.push(
          new UglifyJsPlugin({
            sourceMap: true,
            parallel: true,
            extractComments: { filename: "LICENSES" },
            uglifyOptions: {
              output: {
                comments: /^\**!|@preserve|@license|@cc_on/
              },
              compress: {
                drop_console: true  // uglifyjsのconsole.xを消すオプション
              }
            }
          })
        );
      }
    }
  }
}

いろいろ調べた備忘録

Nuxt.js v2.xは、minifiyにterser-webpack-pluginを使ってるよう。

Nuxt.jsリポジトリmasterを見てみると、以下の設定でいけそうだったけど、うまくいかず。。

build: {
  uglify: {
    uglifyOptions: {
      compress: { drop_console: true }
    }
  }
}

ちゃんと、v2.2.0のTagの方を見たら、そんな設定なかったので、自分でプラグイン追加する形に。今後のリリースで追加されるのかしら..?

以上!!

参考にしたサイト様