ゼロから始めるDjangoソースコード解読 part2

あいさつ

ゼロから始めるDjangoソースコード解読 part2になります。 今回も張り切ってソースコードを読み解いていきます!

解読

.eslintignore

概要

ESLintという、コードの一貫性を高めたり、ECMAScript / JavaScriptコードで見つかったバグを回避したりするためのツールがあります。

.eslintignoreは、ESLintの対象から除外したいファイルやディレクトリを指定するためのファイルです。(gitでいう.gitignoreのようなもの)

詳細

**/*.min.js
**/vendor/**/*.js
django/contrib/gis/templates/**/*.js
docs/_build/**/*.js
node_modules/**.js
tests/**/*.js


ワイルドカードの説明

項目 説明
* /以外の0文字以上の文字列にマッチ
** 0個以上のファイル or ディレクトリにマッチ
! 否定


設定の説明

項目 説明
**/*.min.js .min.jsで終わるファイルをすべて無視する
**/vendor/**/*.js すべてのvendorフォルダ以下に存在する.jsで終わるファイルを無視する
django/contrib/gis/templates/**/*.js django/contrib/gis/templatesフォルダ以下に存在する.jsで終わるファイルを無視する
docs/_build/**/*.js docs/_buildフォルダ以下に存在するすべての.jsファイルを無視する
node_modules/**.js node_modulesフォルダ内(それ以下の階層を除く)に存在する.jsで終わるファイルを無視する
tests/**/*.js testsフォルダ以下に存在するすべての.jsファイルを無視する

「node_modules/**.js」だけは、「node_modules/*.js」との違いが解りませんでした。書き間違えなのか、何か意味があるのか。。

.eslintrc

概要

ESLintの設定ファイル。ルールを設定して、違反部分は警告するなどすることでコードに一貫性を持たせることができる。

詳細

{
    "rules": {
        "camelcase": ["off", {"properties": "always"}],
        "comma-spacing": ["error", {"before": false, "after": true}],
        "curly": ["error", "all"],
        "dot-notation": ["error", {"allowKeywords": true}],
        "eqeqeq": ["error"],
        "indent": ["error", 4],
        "key-spacing": ["error", {"beforeColon": false, "afterColon": true}],
        "linebreak-style": ["error", "unix"],
        "new-cap": ["off", {"newIsCap": true, "capIsNew": true}],
        "no-alert": ["off"],
        "no-eval": ["error"],
        "no-extend-native": ["error", {"exceptions": ["Date", "String"]}],
        "no-multi-spaces": ["error"],
        "no-octal-escape": ["error"],
        "no-script-url": ["error"],
        "no-shadow": ["error", {"hoist": "functions"}],
        "no-underscore-dangle": ["error"],
        "no-unused-vars": ["error", {"vars": "local", "args": "none"}],
        "no-var": ["error"],
        "prefer-const": ["error"],
        "quotes": ["off", "single"],
        "semi": ["error", "always"],
        "space-before-blocks": ["error", "always"],
        "space-before-function-paren": ["error", {"anonymous": "never", "named": "never"}],
        "space-infix-ops": ["error", {"int32Hint": false}],
        "strict": ["error", "global"]
    },
    "env": {
        "browser": true,
        "es6": true
    },
    "globals": {
        "django": false
    }
}

オプション

項目 説明
rules 様々なルールを設定することができる。詳しくはこちら(https://eslint.org/docs/rules/)
env 実行環境の設定を行うことができる。例:browser: ブラウザで実行される、es6: ES6が使用されているなど
globals グローバル変数が書き換え可能かどうか設定できる。falseの場合、グローバル変数の書き換えができなくなる

ESLintなんて存在すら知りませんでした。IT業界は勉強すればするほど勉強不足を思い知らされる気がするのは私だけでしょうか。。

今日はこの辺で。