@dreipol/pandora

1.0.3 • Public • Published

pandora

Build Status Code quality NPM version NPM downloads MIT License

Opinionated set of eslint and prettier rules

Installation

Notice that all the @dreipol/pandora peer dependencies should be installed manually. For this reason we need to explicitly define their major version.

# Install the linting tools
npm i -D eslint@8 prettier@2

# Install the plugins used in @dreipol/pandora
npm i -D eslint-config-airbnb-base@15 eslint-plugin-prettier@4 eslint-config-prettier@8 eslint-plugin-fp@2 eslint-plugin-import@2

# Install @dreipol/pandora
npm i -D @dreipol/pandora

For Typescript support

npm i -D typescript@4 @typescript-eslint/eslint-plugin@5 @typescript-eslint/parser@5

These plugins assume a tsconfig.json file in your project root (Docs).

Optional IDE Configuration

Eslint Setup

Set up your eslint config (.eslintrc.js) file as follows to enable the @dreipol/pandora eslint rules in your project

const { eslint } = require('@dreipol/pandora')

module.exports = {
  extends: [eslint.base],
}

To enable Typescript support, simply add the eslint.typescript settings to the extension list

const { eslint } = require('@dreipol/pandora')

module.exports = {
  extends: [eslint.base, eslint.typescript],
}

Prettier Setup

Set up your prettier config (.prettierrc.js) file as follows to enable the @dreipol/pandora prettier rules in your project

const { prettier } = require('@dreipol/pandora')

module.exports = prettier.base

Vue Setup

Installation

For Vue Project we need to install one additional plugin eslint-plugin-vue

npm i -D eslint-plugin-vue@8

Eslint Setup

To enable the Vue.js linting you should add the following extension to your eslint config (.eslintrc.js) file:

const { eslint } = require('@dreipol/pandora')

module.exports = {
  extends: [eslint.base, eslint.vue],
}

If you need Typescript support in your Vue components, you can add the following ESLint plugin

npm i -D @vue/eslint-config-typescript@7

Now, enable Vue Typescript support in your eslint config

const { eslint } = require('@dreipol/pandora')

module.exports = {
  extends: [
    api.eslint.base,
    api.eslint.typescript,
    api.eslint.vue,
    api.eslint.vueTypescript,
  ]
}

Prettier Setup

To let prettier format your Vue.js files you can simply setup your prettier config (.prettierrc.js) file as follows

const { prettier } = require('@dreipol/pandora')

module.exports = prettier.vue

React Setup

Installation

For React projects we need to install the following two dependencies:

npm i -D eslint-plugin-react@7 eslint-plugin-react-hooks@4

Eslint Setup

To enable linting for React/JSX files, you should add the following extension to your eslint config (.eslintrc.js) file:

const { eslint } = require('@dreipol/pandora')

module.exports = {
  extends: [eslint.base, eslint.react],
}

You don't need any specific plugins for Typescript support with React, just enable both configs in your .eslintrc.js.

const { eslint } = require('@dreipol/pandora')

module.exports = {
  extends: [eslint.base, eslint.react, eslint.typescript],
}

Stylelint Setup

Stylelint Installation

Make sure to have Stylelint installed in your project before proceeding with the following steps

npm i stylelint@14 stylelint-prettier@2 stylelint-config-prettier@9

Stylelint Basic Rules Config

To use only the basic pandora stylelint rules in your project you can set up your .stylelintrc.js file as follows

const { stylelint } = require('@dreipol/pandora')

module.exports = {
  extends: [stylelint.base],
}

Stylelint SCSS Config

Does your project use SCSS files? No problems... you can enable the pandora stylelint rules for scss. First you need to install the stylelint-scss dependency

npm i stylelint-scss@4 postcss-scss@4 postcss@8

You can then update your .stylelintrc.js file as follows

const { stylelint } = require('@dreipol/pandora')

module.exports = {
  extends: [
    stylelint.base,
+   stylelint.scss,
  ],
}

Stylelint BEM Patterns Config

To make sure your classes will be properly named according to BEM, you might enable the pandora bem pattern plugin. First you need to install stylelint-selector-bem-pattern

npm i stylelint-selector-bem-pattern@2

You can then update your .stylelintrc.js file as follows

const { stylelint } = require('@dreipol/pandora')

module.exports = {
  extends: [
    stylelint.base,
    stylelint.scss,
+   stylelint.bemPattern,
  ],
}

Stylelint Order Config

Do you care about the order of your css properties? In that case the pandora stylelint/config-order is what you are looking for. First install stylelint-order

npm i stylelint-order@5

Then update your .stylelintrc.js file as follows

const { stylelint } = require('@dreipol/pandora')

module.exports = {
  extends: [
    stylelint.base,
    stylelint.scss,
    stylelint.bemPattern,
+   stylelint.order,
  ],
}

Package Sidebar

Install

npm i @dreipol/pandora

Weekly Downloads

16

Version

1.0.3

License

MIT

Unpacked Size

19.5 kB

Total Files

15

Last publish

Collaborators

  • hannahku
  • philipplaeubli
  • fabricetobler
  • thibi