WEBサイトや、WEBアプリケーションを開発するときに、Javascirptとか、CSSも、もちろん使いますよね?そんなJavasciprtとか、CSSをそのまま使うのも良いのですが、ファイルサイズが大きくなったりすると、ブラウザでの読み込みが遅くなったり、そもそも開発したコード等を見せたくない場合などありますよね?そんなときに、ファイルサイズの圧縮や、難読化が出来るツールの使用方法のご紹介となります。
この記事でご紹介するのは、UglifyJS、clean-css になります。
目次
UglifyJS
UglifyJSとは
UglifyJSは、node.js で利用できるツールです。利用にはnode.jsのインストールが必要になります。
機能としては、プレーンなJavasciprtを圧縮、難読化することができます。また、オプションによっては、javacript内の console.log や、 console.group などの記述の削除も行うことができます。
開発などでは、デバックようにconsole.log などでコンソールにログ等を出力してたりすると思いますが、本番環境では不要、出したくないと思うので、このツール使うことで除去することができます。
UglifyJSの公式ドキュメントはこちら。
UglifyJSのインストール
node.jsがインストールされていれば、npm が使用できると思うので、以下のコマンドでインストールすることができます。node.jsのインストールは、こちらを参考にしてください。node.jsの本家。
> npm install -g uglify-js
インストールが終わったら、以下のコマンドでバージョンが見れれば成功です。
> uglifyjs -v uglify-js 3.13.1
UglifyJSの利用方法(圧縮・難読化)
javascriptのファイルの圧縮・難読化するためのコマンドが以下になります。
<input js file>:圧縮・難読化前のjavascriptファイル
<js.min file>: 圧縮・難読化後のjavascriptファイル (xxxx.js だった場合は、 xxxx.min.jsなど)
> uglifyjs <input js file> --compress drop_console=true --mangle -o <js.min file>
UglifyJSの使用例
UglifyJS使用前のJavasciprt
window.onload = function() {
setInterval(function() {
var dd = new Date();
document.getElementById("T1").innerHTML = dd.toLocaleString();
console.group();
console.log("==================================");
console.log(dd.toLocaleString());
console.log("==================================");
console.groupEnd();
}, 1000);
}UglifyJS使用後のJavasciprt
window.onload=function(){setInterval(function(){var n=new Date;document.getElementById("T1").innerHTML=n.toLocaleString()},1e3)};UglifyJSをかけた後のJSを見ると、console系の処理が無くなってますね。また、変数名なども変わっており、改行もなくなってます。結構変わってますが、処理結果に変わりはありませんのでご安心を。
clean-css
clean-css とは
UglifyJSは、node.js で利用できるツールです。利用にはnode.jsのインストールが必要になります。
機能としては、プレーンなcssを圧縮、難読化することができます。
開発中は、コメントや、CSS内で改行などが無いと見づらくて効率が悪いと思いますが、本番環境では不要、他の人に見られたくない(恥ずかしい)と思うので、このツール使うことで圧縮・難読化することができます。
clean-cssの公式ドキュメントはこちら。
clean-css のインストール
node.jsがインストールされていれば、npm が使用できると思うので、以下のコマンドでインストールすることができます。node.jsのインストールは、こちらを参考にしてください。node.jsの本家。
> npm install clean-css-cli -g
インストールが終わったら、以下のコマンドでバージョンが見れれば成功です。
> cleancss -v 5.2.1
clean-css の利用方法 (圧縮・難読化)
<input css file>:圧縮・難読化前のcssファイル
<out css file>: 圧縮・難読化後のcssファイル (xxxx.cssだった場合は、 xxxx.min.cssなど)
> cleancss <input css file> > <out css file>
clean-css の使用例
clean-css 使用前のcss
/*ボックスデザインのCSS*/
.box6 {
padding: 0.5em 1em;
margin: 2em 0;
background: #f0f7ff;
border: dashed 2px #5b8bd0;/*点線*/
}
.box6 p {
margin: 0;
padding: 0;
}clean-css 使用後のcss
.box6{padding:.5em 1em;margin:2em 0;background:#f0f7ff;border:dashed 2px #5b8bd0}.box6 p{margin:0;padding:0}それでは、良い開発ライフを!!

UglifyJSもclean-cssもnode.jsだけでなくbrowser上でも利用できますよ。それとデバックではなくデバッグ
mashelさんコメントありがとうございます。また、ご指摘ありがとうございます。