6.3.1 • Published 7 months ago

@niondigital/linting-base v6.3.1

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

@niondigital/linting-base

Installation

Add this package to your projects devDependencies:

npm i -D @niondigital/linting-base

If your project is vue-cli base add @vue/cli-plugin-eslint as well, as @vue/cli-plugin-typescript will try to lint your project via tslint instead of the eslint linting provided by this package.

npm i -D @vue/cli-plugin-eslint

Upgrading from 1.x to 2.x

  1. Remove the husky config file in your project
  2. Follow the instructions in chapter "Install husky hooks" of this readme.

Configuration

Configuration files

Create the following files in your project. Please note: .editorconfig and postcss are not part of this package and need to be added/handled by the project itself.

./commitlint.config.js

For Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/vue/commitlint.config.js');

For non-Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/commitlint.config.js');

./lint-staged.config.js

For Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/vue/lint-staged.config.js');

For non-Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/lint-staged.config.js);

./.eslintrc.js

For Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/vue/eslint.config');

For non-Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/eslint.config');

./.prettierrc.js

For Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/vue/prettier.config.js');

For non-Vue-based projects

// needs to be ./node_modules as VSCode can't resolve import otherwise
module.exports = require('./node_modules/@niondigital/linting-base/src/prettier.config.js');

./.stylelintrc.js

For Vue-based projects

module.exports = require('@niondigital/linting-base/src/vue/stylelint.config');

For non-Vue-based projects

module.exports = require('@niondigital/linting-base/src/stylelint.config');

Install husky hooks

Add husky install to your postinstall script in the package.json of your project:

"postinstall": "husky install",

Install hooks:

# non-vue projects
$ npx init-linting

# vue projects
$ npx init-vue-linting 

Usage

Husky will automatically be installed via this packages postinstall script and lint Typescript, JS, HTML, (Vue), CSS and SCSS files.

Configure your IDE to use eslint and stylelint to highlight problems and/or auto-fix on save. (for an example config for VSCode, see .vscode/settings.template.json of this package)

Package development

Creating a release

  • Make changes and increase version number package.json/package-lock.json
  • Commit changes
  • Execute npm run release