Javascript coding convention (コーディング規約)
Page content
Ruby にもましてまだ模索中です。何かコーディングのルールがあればきれいに統一性持って効率よくかけるようになると信じて…
自分は ruby では rubocop
を使っていますが、 Javascript に関しては ESLint
を Atom plugin で動くようにして活用しています。しようとしています…
なぜ ESLint なのか?
ほかにも JSLint などあるようですが、 ESLint はカスタマイズしやすいらしいです。 細けえことは公式の about の philosophy あたり を読むと良いかと思います。というか、動かしてから使い続けるか判断するノリです。
ESLint を Atom に 導入
「Atom に ESLint 導入した」 を参考に
- プロジェクトに 「ESLint」 をインストールする
sh $ npm install --save-dev eslint # --save-dev は package.json の devDependencies に追記される
- 入っているか確認
sh $ eslint -v
.eslintrc.yaml
ファイルを使いまわしでコピーしてくるか、以下のコマンドで対話式でスタイルを定義して生成:sh $ eslint --init
ESLint のカスタマイズ
- リファレンス
- とっつきやすい記事: ESLintについてのメモ
- 真面目に 公式ドキュメント も読もうね!!
Get Started
を見ていると、人が作った eslintrc を探すなら npmjs.com で eslint-config として探すと良いようです。
- わかったこと
- globals: 環境依存で予め宣言されているグローバル変数 (postman でいう
environment
など) に「定義無いよ!」とエラーを出させないためには、globals
キーで宣言 - rules: 個別のルールを宣言するには
rules
キー配下で宣言
- globals: 環境依存で予め宣言されているグローバル変数 (postman でいう
おれおれサンプル eslintrc
2018/04/11 時点の自分の AWS Lambda 開発用の eslintrc の書き方。 まず、「javascript の linter なんだし json だろ!」という意見もありそうだけど、手書きだとクオーテーションとかめんどいのでなるべく楽したくて yaml にしてみました。
- 作った
.eslintrc.yaml
はこちら:env: es6: true node: true extends: eslint:recommended parserOptions: sourceType: module rules: no-console: [ off ] indent: [ warn, 4 ] quotes: [ warn, double ] no-unused-vars: [ warn ] linebreak-style: [ error, unix ] semi: [ error, always ] globals: event: true callback: true context: true
リストは限られた使い方するので1行にコンパクトにしたくてインライン表記にしてしまいました。気持ち悪い?でも標準で yaml でサポートされてるし許して! ^^;