eslint-config-juni

0.0.48 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i eslint-config-juni

Weekly Downloads

65

Version

0.0.48

License

ISC

Unpacked Size

16.2 kB

Total Files

22

Last publish

Collaborators

  • tristankenneth