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の方を見たら、そんな設定なかったので、自分でプラグイン追加する形に。今後のリリースで追加されるのかしら..?
以上!!
参考にしたサイト様
- GitHub - webpack-contrib/terser-webpack-plugin: Terser Plugin
- nuxt.js/client.config.js at master · nuxt/nuxt.js · GitHub
- nuxt.js/client.js at v2.2.0 · nuxt/nuxt.js · GitHub
- Production ビルドの Nuxt.js でどうしてもソースマップが見たい時の対処法 - Qiita
- vue-cliのwebpack productionビルド時にconsoleログ出力を削除したい - Do Something
- GitHub - mishoo/UglifyJS2 at harmony
- GitHub - mishoo/UglifyJS2: JavaScript parser / mangler / compressor / beautifier toolkit