ES lint configuration for Collaborne projects
-
Install dependencies
npm install --save-dev \ eslint-config-collaborne \ eslint@7 \ eslint-plugin-disable@2 \ eslint-plugin-import@2 \ eslint-plugin-node@11 \ eslint-plugin-prettier@3 \ eslint-plugin-promise@4 \ prettier@2 -
Add
.prettierrc(configuration for prettier){ "singleQuote": true, "jsxSingleQuote": false, "semi": true, "tabWidth": 2, "useTabs": true, "bracketSpacing": true, "jsxBracketSameLine": false, "arrowParens": "avoid", "trailingComma": "all" } -
Add
.eslintignorenode_modules -
Add
.eslintrc.json{ "extends": "collaborne" } -
Add linting scripts in
package.jsonNote: This requires that
tsconfig.jsoncontains aincludeproperty, which should only directories, and in the formatdir/**/*.
- Always use
overridesto configure additional rules - Try to document the reason for a override configuration in the commit message for traceability, and consider reporting the rule here as a future addition with the rationale
{ // ... "scripts": { // ... "lint": "npm run lint:ts", "lint:ts": "eslint --report-unused-disable-directives $(node -p 'require("./tsconfig.json").include.map(include => `'\${include}.\{js,ts,tsx\}'`).join(" ")')" // ... } // ... }