super-tslint v1.0.9
Super tslint
An extension of the tslint library adding the ability to watch files, better handle multiple nested tsconfigs, and more human readable output.
Installation
install the npm package
> npm i -g super-tslintor if you prefer to install it locally
> npm i --save-dev super-tslint
> node ./node_modules/super-tslint/bin/super-tslint ...Usage
Flags
-p, --project [path] path to tsconfig, lints entire project.
-q, --quote a bit of inspiration.
-h, --help shows this dialog.
--all lints all nested tsconfig.* projects.
--fix auto fixes compatible errors.
--watch watches files for on save and re-runs linter.Lint a project
> super-tslint --project example/project-a/tsconfig.jsonLint a single file
> super-tslint path/to/file.tsLint and auto fix a project
> super-tslint --fix --project example/project-a/tsconfig.jsonLint all nested tsconfigs
this will lint all ts projects nested from the current directory
> super-tslint --allLint and watch for changes
> super-tslint --watch --project example/project-a/tsconfig.jsonLint and watch all
> super-tslint --watch --allInspire yourself to write better code
> super-tslint --quoteSetting up multiple tsconfigs
For the following example, lets say we have the below project structure
|____projects
| |__proj-a
| | |__file-a.ts
| | |__tsconfig.json
| |
| |__proj-b
| | |__file-b.ts
| | |__tsconfig.json
| |
| |__tslint.json
|
|__tslint.jsonIn the root tslint.json, define your general rules for the entire repo. You can also choose to include or exclude certain file globs here.
{
"extends": "tslint:recommended",
"rules": {}
}In the projects/tslint.json, you can extend the root config and make changes to your specific nested files. Tslint will always use the closest tslint.json as it's ruleset.
{
"extends": "../tslint.json",
"rules": {
"member-access": false,
"no-console": {
"severity": "warning"
}
},
"linterOptions": {
"exclude": [
"**/typings/**"
]
}
}An example tsconfig.json
{
"compilerOptions": {
"alwaysStrict": true,
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "proj-a-bundle.js",
"sourceMap": true
},
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}And then to lint all nested projects run
> super-tslint --allwhich could produce the following example output
C:/root/projects/proj-a/file-a.ts:10:16
ERROR: 10:16 semicolon Missing semicolon
WARNING: 14:5 no-console Calls to 'console.log' are not allowed.
ERROR: 14:17 quotemark ' should be "
C:/root/projects/proj-b/file-b.ts:10:16
ERROR: 10:16 semicolon Missing semicolon
TOTAL ERRORS: 3
TOTAL WARNINGS: 1Exit codes
If any error occurs during linting, process will return exit status 1 (this does not include warnings).