# eslint-config-node-opinionated

> The linter config and plugins for folks who does not like to be standard.

Latest version **0.6.3** (published 2022-06-14) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install eslint-config-node-opinionated
pnpm add eslint-config-node-opinionated
yarn add eslint-config-node-opinionated
bun add eslint-config-node-opinionated
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.6.3 |
| Published | 2022-06-14 |
| First published | 2019-10-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=12 |
| Dependencies | 0 |
| Unpacked size | 9.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Daniele Dellafiore |
| Maintainers | ildella |
| Keywords | eslint, eslintplugin, nodejs |

## Links

- npm: https://www.npmjs.com/package/eslint-config-node-opinionated
- Repository: https://github.com/ildella/eslint-config-node-opinionated
- Homepage: https://github.com/ildella/eslint-config-node-opinionated#readme
- Issues: https://github.com/ildella/eslint-config-node-opinionated/issues
- npm.io page: https://npm.io/package/eslint-config-node-opinionated

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@inrupt/eslint-config-base](https://npm.io/package/@inrupt/eslint-config-base.md) — 4.5K weekly downloads

## Recent versions

- 0.6.3 (latest) — 2022-06-14
- 0.6.2 — 2022-06-14
- 0.6.1 — 2022-06-10
- 0.6.0 — 2022-06-03
- 0.5.1 — 2022-02-13
- 0.5.0 — 2021-09-24
- 0.4.0 — 2020-06-17
- 0.3.0 — 2020-03-24
- 0.2.6 — 2019-11-04
- 0.2.5 — 2019-11-04
- 0.2.4 — 2019-10-31
- 0.2.3 — 2019-10-31
- 0.2.2 — 2019-10-19
- 0.2.1 — 2019-10-19
- 0.2.0 — 2019-10-19
- … 1 more at https://npm.io/package/eslint-config-node-opinionated/versions

## README

# An opinionated ESLint configuration

[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/npm/v/eslint-config-node-opinionated.svg?style=flat-square)](https://npmjs.com/package/eslint-config-node-opinionated)
![Build Status](https://github.com/ildella/eslint-config-node-opinionated/actions/workflows/main.yaml/badge.svg)
[![Known Vulnerabilities](https://snyk.io/test/github/ildella/eslint-config-node-opinionated/badge.svg?targetFile=package.json)](https://snyk.io/test/github/ildella/eslint-config-node-opinionated?targetFile=package.json)

Across multiple Node.js projects, I use the same linter

  * ESLint with node reccomended defaults
  * A few plugins (node, security, sonarjs and jest)
  * A very strict and opinionated rule set

I was tired to copy-paste config and deps across projects, so I created a shareable eslint config for myself. Eventually could be interesting for somebody else as well. 

## Basic usage

Install all the dependencies:

```shell
yarn add -D eslint eslint-config-node-opinionated eslint-plugin-node eslint-plugin-security eslint-plugin-sonarjs
```

A one-liner eslint config file is all you need now:

```shell
echo "extends: ['node-opinionated']" > .eslintrc.yml
```

or create your own `.eslintrc.js` like this: 

```javascript
module.exports = {
  extends: [
    'node-opinionated',
  ],
}
```

## In combo with Jest

I often use ESLint in combination with [Jest](jestjs.io/), with some specific overrides for the `tests` folder: 

```javascript
module.exports = {
  extends: [
    'node-opinionated',
    'plugin:jest/recommended'
  ],
  plugins: ['jest'],
  overrides: [
    {
      files: ['**/*test*/**'],
      rules: {
        'node/no-unpublished-require': 'off',
        'node/no-unpublished-import': 'off',
        'max-nested-callbacks': ['warn', 3],
        'security/detect-child-process': 'off',
        'security/detect-non-literal-fs-filename': 'off',
      }
    },
  ]
}

```

---
_Source: https://npm.io/package/eslint-config-node-opinionated · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
