@cityelectricalfactors/eslint-config-cef-app

1.0.4 • Public • Published

CEF ESLint + Prettier config package

This package provides CEF's .eslintrc and .prettierrc as an extensible shared config.

Our package includes all the required packages as dependencies, except for the most basic:

  • eslint
  • prettier

We will specify those as peer dependencies instead. The reason is that they are not strictly required by the plugins, but rather the other way around:, eslint and prettier are "host' packages which will load our config/plugins. I suggest reading this npm blog post for a more detailed explanation.

This is also an effective way to specify the supported host package versions. An example:

  {
    "peerDependencies": {
      "eslint": "^6 || ^7.2.0",
      "prettier": ">= 1.13"
    }
  }

We have plenty of options here: luckily, the ESLint documentation is very helpful. A few key points:

  • A config/plugin will not be loaded by ESLint unless if you specify it here!
  • The precedence of items in extends and plugins follows the order they are listed. This is important in case some items conflict each other
  • A rule can be either specified as
    • a string/number indicating its level: 'off' | 'warn' | 'error', 0 | 1 | 2
    • an array of [level, options] where options is used to configure the rule. You can look at each rule's documentation for the available options, for example: import/order options

Test your package locally

Before sharing your package with the world, you’ll want to be confident that the package works. The way that works best is to:

In the cityelectricalfactors-eslint-app folder, type:

  yarn link

Then, in your project that wants to use your shareable config, type:

  yarn link @cityelectricalfactors/eslint-config-cef-app

Publishing Changes

If you’re happy your package is working correctly and you have updated the README.md file, then you’re ready to go live (don't forget to update the version number in the package.json)!

  • If you haven’t already, sign-up to npm.
  • Go into your terminal, type npm login and insert your details.
  • In the terminal, navigate to the root directory of your package and type npm publish

Installation

Warning:

eslint-config-react-native-app is currently incompatible with ESLint 8 which has just been released. Package.json version pulled to 7.32.0. see here

  1. Install the peer dependencies as devDependencies in our project: you can find out the peer dependencies by running: npm info "@cityelectricalfactors/eslint-config-cef-app" peerDependencies
  yarn add --dev @babel/core @babel/runtime babel-jest eslint@7.32.0 eslint-plugin-babel eslint-plugin-import jest @babel/eslint-parser eslint-plugin-jsx-a11y
  1. Install our config. For npm packages:
  yarn add --dev @cityelectricalfactors/eslint-config-cef-app
  For git repositories:
  yarn add git+{{gitUrl}}

  # Example:
  yarn add git+https://github.com/organisation/packageName.git
  1. Configure ESLint to use our package. There are many ways to do so, the simplest probably is adding an eslintConfig field in our project's package.json file or removing all from your current eslint file and adding this:
  {
    "extends": "@cityelectricalfactors/eslint-config-cef-app"
  }
  1. Add the scripts into the package.json
  "lint": "eslint . --ignore-path .gitignore .",
    "lint:write": "eslint --debug src/**/*.js --fix",
    "prettier": "prettier --write src/**/*.js",

Readme

Keywords

Package Sidebar

Install

npm i @cityelectricalfactors/eslint-config-cef-app

Weekly Downloads

53

Version

1.0.4

License

MIT

Unpacked Size

5.52 kB

Total Files

3

Last publish

Collaborators

  • scott.cole
  • lukemarks
  • michelledinancef
  • reece_farnworth_cef
  • cef-amaughan
  • mwats
  • davidshakesby
  • phil-cef
  • jalmendhry
  • cefwebdevteam
  • andrew_smith_cef