@amedia/eslint-config-base

ESLint configuration to be used by developers at Amedia

Usage no npm install needed!

<script type="module">
  import amediaEslintConfigBase from 'https://cdn.skypack.dev/@amedia/eslint-config-base';
</script>

README

@amedia/eslint-config-base

Common ESLint/Prettier configuration for javascript Extends AirBnb's Base configuration: https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base

Install

To test this package:

Install the package with (change the version to the version in package.json)

NPM

With npm 5+

This is a cool tool that installs all dependencies you need in devDependencies to get going.

npx install-peerdeps --dev @amedia/eslint-config-base

OR

If you want a prefer manual approach then install the correct versions of each peerDependency package, which are listed by the command:

npm info "@amedia/eslint-config-base" peerDependencies
npm install --save-dev @amedia/eslint-config-base

yarn

yarn add  @amedia/eslint-config-base -D

Install the correct versions of each peerDependency package, which are listed by the command:

npm info "@amedia/eslint-config-base" peerDependencies

Usage

There are a few ways to include the eslint config in your project.

Make sure you dont have any other settings for eslint or prettier already in your editor workspace or global. Restart your editor if you dont see it working immediately (known issue for VS Code)

Select one of the options below:

Using your package.json:

{
  "eslintConfig": {
    "extends": "@amedia/eslint-config-base"
  }
}

Using your .eslintrc:

{
  "extends": "@amedia/eslint-config-base"
}

or .eslintrc.js:

module.exports = {
  extends: '@amedia/eslint-config-base',
};

eslint and prettier may need a punch in the gut for these changes to take effect. Restart your editor.

Prettier Config

This is how you use or extend the @amedia/eslint-config-base prettier config in your app. Add a line to the package.json file.

{
  "prettier": "@amedia/eslint-config-base/prettier.config"
}

Create a file named prettier.config.js Again, remove other prettier config files locally in your project or editor.

module.exports = require('@amedia/eslint-config-base/prettier.config');

Using VSCODE?

Install extenstion for VS Code ESLint extension (Dirk Baumer) (https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) and Prettier - Code formatter (https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)

create a folder .vscode, and a file settings.json with the following:

{
    "editor.defaultFormatter": "esbenp.prettier-vscode",

    "editor.formatOnSave": true,
    "[yaml]": {
        "editor.formatOnSave": false
    },
    "[javascript]": {
        "editor.detectIndentation": true
    },
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }
}

Lint script

You might want to add these two scripts in you package.json.

"scripts": {
  "lint": "eslint bin lib",
  "lint-fix": "eslint --fix bin lib"
},

Need to customize?

Here is an example of how you could customize for your project :

An example of .eslintrc.js

const eslintAmedia = require('@amedia/eslint-config-base');

delete eslintAmedia.parser;
eslintAmedia.rules['import/extensions'] = 1;
eslintAmedia.parserOptions.ecmaVersion = 2020;

module.exports = eslintAmedia;