LoginSignup
1
3

More than 5 years have passed since last update.

jsファイル中のconsole出力をminify時に削除する

Last updated at Posted at 2017-02-05

結論

UglifyJS2drop_console オプション付き実行で可能。

やりたいこと

javascriptファイル中にある、開発用のconsole.logその他のconsole出力をリリース版では抑制したい。

課題

  • 手動でconsoleを削除、はやらない
  • 目的のためにconsoleのラッパーを書いたり、JavaScriptライブラリを使わない
    • 手間/依存関係を増やさない

方法

javascript向けのMinifierでconsole関連を削除する機能があるはず、と思って探したらCLIのMinifier
ツールである UglifyJS2 に目的の機能があった。
実行時の drop_console オプション(defaultはfalse)を有効にすることでconsole関連が削除される。

コマンド

uglifyjs <input js file> --compress drop_console=true --mangle -o <js.min file>

実行例

console.js
const message = "hogehoge";
console.log(message);
console.info("info");
console.warn("warn");
alert(message);
console.error("error");

↑に対して drop_console オプションを有効にして上述のコマンドを実行する。

uglifyjs console.js --compress drop_console=true --mangle -o console.min.js
WARN: Dropping side-effect-free statement [console.js:2,0]
WARN: Dropping side-effect-free statement [console.js:3,0]
WARN: Dropping side-effect-free statement [console.js:4,0]
WARN: Dropping side-effect-free statement [console.js:6,0]
const message="hogehoge";alert(message);

出力の console.min.js は以下のようなる。

console.min.js
const message="hogehoge";alert(message);

期待通りconsole関連が削除されている。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3