8.0.14 • Published 2 months ago

@knime/eslint-config v8.0.14

Weekly downloads
-
License
See the file LICE...
Repository
github
Last release
2 months ago

KNIME ESLint/Stylelint config

This repository contains an ESLint ruleset for typical KNIME frontend projects. Rules cover simple JavaScript/TypeScript setups as well as Vue2/Vue3 and Nuxt projects. A few overrides to cover common test scenarios with Jest and Vitest are also present.

Also it contains some configs for Stylelint, lintstaged and a Git hook to format commit messages.

Formatting is supposed to be handled via Prettier.

Development

Prerequisites

Newer versions may also work, but have not been tested.

Install dependencies

npm install

and then use the following commands.

Linting

The different ESLint profiles contained herein can also be linted by running

npm run lint

Running security audit

npm provides a check against known security issues of used dependencies. Run it by calling

npm audit

Using the ESLint profiles in your project

The ESLint profiles in most cases come with pre-packaged ESLint plugins and plugin configurations. However there is a long standing issue with ESLint which makes it a cumbersome setup. To remedy this shortcoming you can use a patch which is pulled in as a transitive dependency already. The following code block should give an understanding of a commonly used setup in your .eslintrc.js file:

// This is a workaround for https://github.com/eslint/eslint/issues/3458
require("@rushstack/eslint-patch/modern-module-resolution");

module.exports = {
  extends: ["@knime/eslint-config/vue3"],
  globals: {
    consola: true,
  },
  // [...]
};

Using Stylelint in your project

The following code block should give an understanding of a commonly used setup in your .stylelintrc file:

module.exports = {
  extends: ["@knime/eslint-config/stylelint/vue"],
};

See stylelint folder for available configs.

Requirements

Projects still need to specify the following devDependency in their respective package.json files, but none of the required additional plugins:

Using Git hooks in your project

The package supplies the tools to running a couple of commit hooks:

Linting and formatting staged changes

Include the following in a pre-commit hook to lint and format the changes in your stage zone (via lintstaged).

#!/usr/bin/env bash
npx lint-staged

Additionaly, use the lint-staged.config.mjs file to configure lint-staged, i.e. create a lint-staged.config.mjs file in the root folder containing

import config from "@knime/eslint-config/lint-staged.config.mjs";
export default config;

Format commit message

Use a prepare-commit-msg hook to format your commit message to conform with the required format by KNIME:

#!/usr/bin/env bash
npm exec knime-eslint-config-prepare-commit-msg "$@"

In case the npm project isn't in the root folder, please do:

#!/usr/bin/env bash
<path-to-npm-project>/node_modules/.bin/knime-eslint-config-prepare-commit-msg "$@"

Refer to scripts/README.md for more information.

8.0.14

2 months ago

8.0.13

2 months ago

8.0.12

2 months ago

8.0.11

4 months ago

8.0.10

4 months ago

8.0.9

4 months ago

8.0.8

5 months ago

8.0.5

10 months ago

8.0.4

11 months ago

8.0.7

10 months ago

8.0.6

10 months ago

7.2.1

1 year ago

7.2.0

1 year ago

8.0.1

1 year ago

8.0.0

1 year ago

8.0.3

12 months ago

8.0.2

12 months ago

7.1.6

1 year ago

7.1.5

1 year ago

7.1.4

1 year ago

7.1.3

1 year ago

7.1.2

1 year ago

7.1.1

1 year ago

7.1.0

1 year ago

7.0.6

1 year ago

7.0.5

2 years ago

7.0.4

2 years ago

7.0.3

2 years ago

7.0.1

2 years ago

7.0.0

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago