Fork me on GitHub

2015-08-03のJS: ESLint 1.0.0、JSCS 2.0.0、Esprima 2.5.0

Edit on GitHub 編集履歴を見る

JSer.info #239 - JavaScript LintツールであるESLint 1.0.0がリリースされました。

--resetのオプションがデフォルトとなり全てのルールがデフォルトOFFとなりました。今までのデフォルトは"eslint:recommended"という設定を使うことでできるようです。

{
    "extends": "eslint:recommended"
}

JavaScriptのスタイルチェックツールであるJSCS 2.0.0がリリースされました。

esnextというオプションでES6(とJSX)のサポート、スタイルの自動修正機能を改善、ES6関連のルールの追加、//コメントでチェックを無効化などがサポートされました。

if (x) y(); // jscs:ignore requireCurlyBraces

JavaScriptのパーサライブラリであるEsprima 2.5.0がリリースされました。

2.5.0でES6の機能をフルサポートしたため、ES6のコードを全てパースできるようになりました。

先ほど出てきたJSCSはEsprimaを、ESLintはEsprimaをforkしたEspreeをパーサとして利用しています。

また@hzooさんによりどちらもbabel-jscsbabel-eslintという形で、BabelがサポートするexperimentalなES.nextのコードもサポートしています。

このbabel-*の仕組みとしては、Babelが内蔵するacornベースのパーサを使いパースした結果を、Esprima互換のAST/CSTに変換することで、ES.nextのコードもJSCSとESLintで使えるようにしています。

JavaScriptのASTについてはESTreeというデファクトスタンダードがありますが、CST(Concrete Syntax Tree)についてはまだ標準的なものはありません。

ESLint、JSCSどちらも、ESTreeのAST仕様では定義されていない"スペース"や";"(セミコロン)といった文字列などもチェックに利用しています。

JSCSではCSTというConcrete Syntax Treeの実装を作り使うようになっていて、ESLintもEsprima由来のtokenを利用しています。

長くなりましたが、何が書きたかったかというと土台となるEsprimaなどのJavaScriptパーサがES6に対応し、それらを使うESLintやJSCSなどもES6へ対応したため、こういったツールがまとめて一段落したように見えます。

そのため、次はCSTなどでよりツールを便利にするために一歩踏み出し始めた感じなので、この辺はまだまだ色々な進化がありそうな気がします。

#19 ES7 | mozaic.fmでもこういったASTツールチェインの話をしているので聞いてみるといいかもしれません。


お知らせ

Realtime JSer.info β始めました。
JSer.infoは週一ですが、realtime.jser.infoは名前の通りその場その場で更新されます。

何かご意見あったら以下のIssueとかに下さい。
(hugoで作り直すPRとかも募集してます)


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


ESLint 1.0.0 released - ESLint - Pluggable JavaScript linter

eslint.org/blog/2015/07/eslint-1.0.0-released

JavaScript Tools ReleaseNote

ESLint 1.0.0リリース。
ES6の対応改善、--resetがデフォルトの挙動となり設定なしではルールを持たないようになった。
"eslint:recommended"の設定を継承することで今までと同じデフォルト設定が得られる。


Release 2.0.0 · jscs-dev/node-jscs

github.com/jscs-dev/node-jscs/releases/tag/v2.0.0

JavaScript Tools ReleaseNote

JavaScriptスタイルチェックツールJSCS 2.0.0リリース。
ES.nextをサポートする--esnextフラグの追加、CSTを実装しAutofixingに利用するように、ES6に対応したルールの追加、コメントによるルールの無効化のサポートなど


Release 2.5.0 · jquery/esprima

github.com/jquery/esprima/releases/tag/2.5.0

JavaScript AST library ReleaseNote

Esprima 2.5.0リリース。
ES6の全ての機能をパースできるように


Flow | Version 0.14.0

flowtype.org/blog/2015/07/29/Version-0.14.0.html

flowtype ReleaseNote

Flow 0.14.0リリース。
型指定してないパラメータをanyと扱うように、Flowコメント構文をブロックコメント内で使えるようになるなど


| Intern 3 is here! | Blog | SitePen

www.sitepen.com/blog/2015/07/30/intern-3-is-here/

JavaScript testing ReleaseNote

JavaScriptテストフレームワークのIntern 3リリース。
IE8のサポート終了、ES6の対応改善、d.tsを追加、QUnit互換のサポートなど


アーティクル


Linting JavaScript in 2015

blog.lauritz.me/linting-javascript-in-2015/

JavaScript Tools

ESLintを使ってJavaScriptのコードをLintする方法についての紹介


New regular expression features in ECMAScript 6

www.2ality.com/2015/07/regexp-es6.html

JavaScript ECMAScript 正規表現

ES6で追加された正規表現の要素について。
sticky flag、Unicode flag、\u{...}によるEscape sequencesについて


Flux inside Web Workers — Medium

medium.com/@nsisodiya/flux-inside-web-workers-cc51fb463882

JavaScript Flux DOM

DOM lessな実装をしてればWeb Workerでも動かせる。
FluxをベースにStore->View、View->ActionをpostMessageでやりとりすることで、View以外をWeb Worker上で処理できるという話


Isomorphic Architecture を実装してるときの細かいアレコレ ::ハブろぐ

havelog.ayumusato.com/develop/javascript/e682-universal_architecture_tips.html

isomorphic JavaScript

シングルページアプリケーションとサーバサイドレンダリングを扱う際に起こる問題と解決策について。
設定の共有をするか、UAの評価、React Componentの<head>への適応方法、ライフサイクルの管理などについて


Non-blocking Asynchronous JSON.parse Using The Fetch API

azimi.me/2015/07/30/non-blocking-async-json-parse.html

JavaScript JSON

Fetch APIで提供されてるResponseオブジェクトを使い(new Response(string)).json()を非同期JSON.parseとして利用する方法について


スライド、動画関係


Learning RiotJS - Video Tutorial Playlist @eggheadio

egghead.io/playlists/learning-riotjs

JavaScript tutorial 動画 library

Riot.JSについてのスクリーンキャストシリーズ


サイト、サービス、ドキュメント


Mithril

mithril-ja.js.org/

JavaScript library 翻訳

Mithrilの日本語訳ページ


WebRTCセキュリティレポート · A Study of WebRTC Security

webrtc-security.github.io/report_ja/

JavaScript WebRTC セキュリティ

WebRTCのセキュリティについての文章。
WebRTCがどういう仕組みで動いているのか、信頼性が何をベースとして構築されているか、暗号のメカニズム、安全に扱う方法についてなど


書籍関係


Front-End Architecture - O'Reilly Media

shop.oreilly.com/product/0636920040156.do

JavaScript CSS book

2015年12月発売
CSSプリプロセス、開発ワークフローツール、JavaScriptのライブラリなどフロントエンドについての書籍


この記事へ修正リクエストをする
JSer.info Slackに参加する