TypeScript/JavaScript プロジェクトのコード品質を向上させるための TSLint
TypeScript および JavaScript プロジェクトにおける特定のディレクトリまたはファイルの TSLint の無視方法
ただし、すべてのファイルやディレクトリを TSLint の解析対象とする必要はありません。 特定のディレクトリやファイルは、解析から除外したい場合があります。
このチュートリアルでは、TypeScript および JavaScript プロジェクトで特定のディレクトリまたはファイルを TSLint の解析から除外する方法を、わかりやすく日本語で解説します。
tsconfig.json ファイルを使用する
TSLint の設定は、tsconfig.json
ファイルを使用して構成できます。
このファイルには、exclude
プロパティがあり、TSLint の解析から除外するファイルとディレクトリのリストを指定できます。
{
"compilerOptions": {
/* ... */
},
"exclude": [
"node_modules",
"dist",
"vendor"
],
"tslint": {
"rules": {
/* ... */
},
"exclude": [
"src/test/javascript/**/*.ts",
"src/test/javascript/**/*.js"
]
}
}
上記の例では、node_modules
、dist
、vendor
ディレクトリ内のすべてのファイルが TSLint の解析から除外されます。
さらに、src/test/javascript
ディレクトリ内のすべての TypeScript ファイル (.ts
) と JavaScript ファイル (.js
) も除外されます。
.tslintignore ファイルを使用する
tsconfig.json
ファイルの代わりに、.tslintignore
ファイルを使用して TSLint の除外設定を指定することもできます。
このファイルには、TSLint の解析から除外するファイルとディレクトリのリストを 1 行ごとに記述します。
node_modules
dist
vendor
src/test/javascript/**/*.ts
src/test/javascript/**/*.js
上記の例は、tsconfig.json
ファイルの例と同じ除外設定を指定しています。
tslint.json ファイルを使用する
{
"rules": {
/* ... */
},
"extends": [
"tslint:recommended"
],
"exclude": [
"node_modules",
"dist",
"vendor",
"src/test/javascript/**/*.ts",
"src/test/javascript/**/*.js"
]
}
プロジェクトのニーズに合った方法を選択してください。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "./dist",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": true,
"skipLibCheck": true,
"esModuleResolution": "node",
"allowJs": true,
"sourceMap": true,
"declaration": true,
"removeComments": false,
"pretty": true
},
"exclude": [
"node_modules",
"dist"
],
"tslint": {
"rules": {
"array-bracket-newline": [
"error",
"always"
],
"array-element-newline": [
"error",
"one"
],
"arrow-parens": "error",
"bitwise-operator": "error",
"boolean-type-assertion": "error",
"brace-expansion": "error",
"class-declaration-newline": [
"error",
"one"
],
"comment-format": [
"error",
"check-space"
],
"consistent-type-assertions": "error",
"curly-braces-expression": "error",
"dot-notation": [
"error",
"prefer"
],
"eof-line-break": ["error", "crlf"],
"file-header": "error",
"for-in-array": "error",
"function-call-argument-newline": [
"error",
"consistent"
],
"function-declaration-newline": [
"error",
"one"
],
"function-name-casing": "error",
"function-whitespace": [
"error",
"all"
],
"indent-whitespace": [
"error",
"tab"
],
"interface-name-casing": "error",
"jsdoc-format": [
"error",
"check-multiline-param"
],
"keyword-spacing": [
"error",
"always"
],
"line-comment-position": "error",
"max-array-length": [
"error",
10
],
"max-line-length": [
"error",
120
],
"missing-doc": "error",
"no-any": "error",
"no-arrow-function-with-declaration": "error",
"no-auto-bind": "error",
"no-bitwise": "error",
"no-boolean-literal-compare": "error",
"no-consecutive-blank-lines": "error",
"no-console": "error",
"no-confusing-arrow": "error",
"no-debugger": "error",
"no-default-case": "error",
"no-duplicate-case": "error",
"no-empty-function": "error",
"no-empty-interface": "error",
"no-empty-line-before-return": "error",
"no-enum-variable-declaration": "error",
"no-excessive-blank-lines": "error",
"no-extra-parens": "error",
"no-extraneous-class": "error",
"no-floating-decimal": "error",
"no-for-in-with-break": "error",
"no-for-loop-init-declaration": "error",
"no-function-reassignment": "error",
"no-implicit-any-function-parameters": "error",
"no-implicit-any-method-parameters": "error",
"no-implicit-any-return-type": "error",
"no-import-star": "error",
"no-increment-decrement": "error",
"no-inline-declaration": "error",
TSLint の除外設定:その他の方法
glob パターンを使用する
除外設定で glob パターンを使用すると、より柔軟な除外ルールを作成できます。
例えば、以下の設定は、src/docs
ディレクトリ内のすべてのファイルと、src/app
ディレクトリ内の .spec.ts
ファイルを TSLint の解析から除外します。
{
"exclude": [
"src/docs/**/*.{ts,js}",
"src/app/**/*.spec.ts"
]
}
ignorePattern オプションを使用する
tslint.json
ファイルを使用して TSLint の設定を指定する場合、ignorePattern
オプションを使用して除外設定を指定できます。
このオプションは、exclude
オプションよりも詳細な制御を提供します。
{
"rules": {
/* ... */
},
"extends": [
"tslint:recommended"
],
"tslintOptions": {
"ignorePattern": [
"node_modules",
"dist",
"vendor",
"src/test/javascript/**/*.ts",
"src/test/javascript/**/*.js"
]
}
}
excludeDirectories オプションを使用する
このオプションは、再帰的にサブディレクトリも含めて除外するディレクトリを指定する場合に役立ちます。
{
"rules": {
/* ... */
},
"extends": [
"tslint:recommended"
],
"tslintOptions": {
"excludeDirectories": [
"node_modules",
"dist",
"vendor"
]
}
}
Visual Studio Code には、TSLint の除外設定を簡単に管理できる拡張機能がいくつかあります。
これらの拡張機能を使用すると、エディタ内で直接除外設定を追加、編集、削除できます。
TSLint CLI ツールを使用して、コマンドラインから TSLint の除外設定を指定することもできます。
この方法は、スクリプトやワークフローに TSLint の除外設定を統合する場合に役立ちます。
TSLint には、特定のディレクトリまたはファイルを解析から除外するためのさまざまな方法があります。
javascript ide typescript