0.0.48 • Published 3 years ago

eslint-config-juni v0.0.48

Weekly downloads
256
License
ISC
Repository
github
Last release
3 years ago

eslint-config-juni

NPM package for shared ESLint config used at JuniLearning.

Usage

For all projects:

  1. npm i --save-dev eslint-config-juni
  2. Install peer dependencies: npx install-peerdeps --dev eslint-config-juni
  3. Create a file called .eslintrc.js in the project root, next to package.json. Leave it empty for now. The contents will vary depending on the repo's environment type.

.eslintrc.js contents:

React projects:

module.exports = {
  extends: ["juni/packages/react", "juni/packages/base"],
};

React-Typescript projects:

module.exports = {
  parser: "@typescript-eslint/parser",
  plugins: ["@typescript-eslint"],
  extends: [
    "juni/packages/react",
    "juni/packages/base",
    "juni/packages/typescript",
  ],
};

Vanila Typescript (no React) projects:

module.exports = {
  parser: "@typescript-eslint/parser",
  plugins: ["@typescript-eslint"],
  extends: ["juni/packages/base", "juni/packages/typescript"],
};

Non-React projects

module.exports = {
  extends: ["juni/packages/base"],
};

(more configs coming soon)

Lint pre-push & Husky

Enforce linting config on commits by using the lint pre-push plugin. This lints all committed files when a user attempts to push their code and will block the push if there are any linting errors.

  1. Install the packages: npm install --save-dev lint-prepush husky
  2. Add the following to package.json:
  "husky": {
    "hooks": {
      "pre-push": "lint-prepush"
    }
  },
  "lint-prepush": {
    "base": "master",
    "tasks": {
      "*.js": [
        "eslint"
      ]
    }
  },

VSCode setup

Enable format on save capabilities in VSCode using the Juni linting config. Add the following to ./.vscode/settings.json:

  // enables VSCode's default formatter
  "editor.formatOnSave": true,
  // disables the default formatter for all Javascript files. This will be handled by the Juni eslint config.
  "[javascript]": {
    "editor.formatOnSave": false
  },
  "[javascriptreact]": {
    "editor.formatOnSave": false
  },
  "[typescript]": {
    "editor.formatOnSave": false
  },
  "[typescriptreact]": {
    "editor.formatOnSave": false
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  // If you have the VSCode-prettier plugin, it will be disabled for Javascript files in favor of the prettier config in Juni's eslint config.
  "prettier.disableLanguages": [
    "javascript",
    "javascriptreact"
  ],
  "eslint.alwaysShowStatus": true

How to publish

# run only once to install publishing tool
npm i np -g
np --no-tests
npm run release
0.0.48

3 years ago

0.0.47

3 years ago

0.0.46

3 years ago

0.0.45

4 years ago

0.0.44

4 years ago

0.0.42

4 years ago

0.0.43

4 years ago

0.0.40

4 years ago

0.0.41

4 years ago

0.0.39

4 years ago

0.0.37

4 years ago

0.0.38

4 years ago

0.0.33

4 years ago

0.0.34

4 years ago

0.0.35

4 years ago

0.0.36

4 years ago

0.0.31

4 years ago

0.0.32

4 years ago

0.0.30

4 years ago

0.0.29

4 years ago

0.0.24

4 years ago

0.0.25

4 years ago

0.0.26

4 years ago

0.0.27

4 years ago

0.0.28

4 years ago

0.0.22

4 years ago

0.0.23

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.17

4 years ago

0.0.18

4 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.13

4 years ago

0.0.9

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago