旧来のJavaScriptは変数のスコープに問題があったり、クラスをサポートしていないなど大きなWebアプリケーションを作るには不向きな言語でした。しかし現在はPromiseやクラス、Proxyなど多彩な機能が追加されています。 これらはESnextと呼ばれる仕様で、すべてのWebブラウザで間違いなく使える訳ではありません。そうしたESnextのコードが存在するかどうかチェックできるのがdetect-esです。

detect-esの使い方

インストールはYarnまたはnpmを使って行います。

yarn global add detect-es

後はファイルを指定して detect-es コマンドを実行するだけです。

$ detect-es client/www/js/app.js 
CONST client/www/js/app.js:1:0
CONST client/www/js/app.js:2:0
CONST client/www/js/app.js:3:0
CONST client/www/js/app.js:4:0
ARROW_FUNCTION client/www/js/app.js:6:46
CONST client/www/js/app.js:7:2
ARROW_FUNCTION client/www/js/app.js:7:22
API You may need a polyfill for Promise client/www/js/app.js:8:15

detect-esが対応しているのはconst/let、テンプレート、クラス、アローファンクション、Async Function、モジュール、インポート、分割代入、ジェネレータ、for of 文となっています。これらは使ってはいけない訳ではありませんが、古いブラウザでは動かない可能性があるので利用の際にはサポートブラウザを確認する必要があるでしょう。

detect-esはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

egoist/detect-es: Detect ESnext features in your code.