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