イマドキは 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 を組み込んでみる。