イマドキは Uglify JS じゃなくて Terser だ!Terser を使ってみる

JavaScript の圧縮・難読化で知られる uglify-js は ES2015 に対応しておらず、別ブランチで開発されていた ES2015 対応版の uglify-es は開発終了しているらしい。

そんな uglify-es を Fork して誕生したのが、terser というツールだ。

$ npm install -D terser
$ npx terser --compress --mangle -- index.js

こんな風にすると難読化してくれる。

ファイルに書き出す時は --output オプションで。

$ npx terser --compress --mangle --output='dist.js' -- index.js

この辺のオプションは uglify-es そのままで良い感じ。

uglify-es は ES Modules 形式のコードも解釈して圧縮してくれるが、import を解決してくれるワケではない (バンドルツールではないので)。Terser は Webpack や Rollup にも対応しているので、そうしたバンドルツールに組み込むことで、最終的なコードを Terser で圧縮できるだろう。

というワケで次回は Rollup を使ってみて、そこに Terser を組み込んでみる。