Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stackr23/config-eslint
StackR23's modular config for EsLint (rules, plugins and integration)
https://github.com/stackr23/config-eslint
eslint-config modular stackr23
Last synced: 7 days ago
JSON representation
StackR23's modular config for EsLint (rules, plugins and integration)
- Host: GitHub
- URL: https://github.com/stackr23/config-eslint
- Owner: stackr23
- Created: 2021-05-12T12:13:30.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-24T23:44:30.000Z (almost 3 years ago)
- Last Synced: 2024-11-20T04:57:02.502Z (about 1 month ago)
- Topics: eslint-config, modular, stackr23
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@stackr23/config-eslint
- Size: 497 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# @stackr23/config-eslint
- [Installation](#installation)
- [Configuration](#configuration)
- [NPM Lint Script](#npm-lint-script)
- [Integration (VsCode)](#integration-vscode)
- [Import Resolvers](#import-resolvers)
- [webpack](#webpack)
- [node](#node)## Installation
> **to skip installation and configuration,**
> **just run** `mrm --preset @stackr23/mrm lint`
>
> **see:** [lint Task of '@stackr23/mrm'](https://github.com/stackr23/mrm#lint)**install package:** `npm i -D eslint @stackr23/config-eslint`
_includes all eslint and prettier related plugins and shared configs_## Configuration
**eslint** (_either JS or JSON_)
**JS - {workspace}/.eslintrc.js:**
```js
module.exports = { extends: [require.resolve('@stackr23/config-eslint')] }
```**JSON - {workspace}/.eslintrc:**
```json
{ "extends": ["./node_modules/@stackr23/config-eslint/index.js"] }
```**prettier**
```js
// {workspace}/prettier.config.js
module.exports = require('@stackr23/config-eslint/prettier.config.js')
```### NPM Lint Script
`"lint": "eslint --fix --ext \".js,.jsx,.ts,.tsx\" . --quiet --format pretty && prettier **/*.{css,scss,md,json} --write"`
### Integration (VsCode)
**install extensions:**
- "dbaeumer.vscode-eslint"
- "teeLang.vsprettier"**configure vscode:**
```javascript
// {workspace}/.vscode/settings.json
{
// PRETTIER
{
"editor.formatOnSaveTimeout": 500,"editor.defaultFormatter": "teeLang.vsprettier",
"vsprettier.requireConfig": true,
"vsprettier.packageManager": "npm",
"vsprettier.useEsLint": false,
"vsprettier.useStyleLint": true,"editor.codeActionsOnSave": { "source.fixAll.eslint": true },
"eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact" ],
"eslint.alwaysShowStatus": true,
"eslint.run": "onType",
"eslint.lintTask.enable": true,
"eslint.workingDirectories": [{ "directory": ".", "changeProcessCWD": true }],"javascript.implicitProjectConfig.checkJs": true,
"javascript.validate.enable": false,
"javascript.format.enable": false,
"[javascriptreact]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnPaste": false,
"editor.formatOnSave": false,
"editor.formatOnType": false,
"editor.formatOnSaveTimeout": 500
},
}```
### Import Resolvers
> enables absolute import paths
> like `import Header from 'components/Header'`#### webpack
> applied to env 'react'
- **uses '[tsconfig-paths-webpack-plugin](https://github.com/dividab/tsconfig-paths-webpack-plugin#readme)'** to resolve import paths
**requires:** workspaceRoot/tsconfig.json
see [path-mapping for typescript](https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping)
- **if tsconfig.json is not present** it won't use that plugin
and uses the **default resolve config**:```js
resolve: {
extensions: ['.jsx', '.js', '.ts', '.tsx', '.json'],
// paths are relative to workspace root
alias: {
components: join(basename(CONSTANTS.paths.src), 'components'),
assets: CONSTANTS.paths.assets
},
modules: ['node_modules'],
}
```- **you can overwrite this config** to fit your projects module resolvement,
if you **add 'webpack.config.resolve.js'** to your workspaceRoot
_(use format of '[src/webpack.config.resolve.js](https://github.com/stackr23/webpack/blob/master/src/webpack.config.resolve.js)')_
- This config will also be used by '[@stackr23/webpack](https://github.com/stackr23/webpack)'
- for more information see [webpack's resolve config](https://webpack.js.org/configuration/resolve/)#### node
> applied to env 'browser' and 'node'
```javascript
{
paths: [ './src' ],
extensions: [ '.js', '.jsx', '.json' ],
}
```