@creativepenguin/standards
v1.0.0-rc.1
Published
Various shared coding standard configs for Creative Penguin repos.
Downloads
18
Readme
Code Standard Configs for Creative Penguin Repos
This package contains all configuration files for the various code standard tools that we use in Creative Penguin repos. Currently, the included configs are: ESLint, Commitizen, and Commitlint.
Installation
npm i -ED @creativepenguin/standards
Usage
ESLint
Add a .eslintrc.js
file to the project root with the following contents.
'use strict';
module.exports = {
// Currently ESLint requires shared config packages to be prefixed with `eslint-config`
// to be resolved. Since we re using a shared config in a standards mono-repo, we have
// to use the full relative file path.
extends: [ './node_modules/@creativepenguin/standards/eslint/index.js' ],
rules: {
'new-cap': 'off',
},
globals: {
CONFIG: true,
},
};
There are 3 config options for ESLint available:
./node_modules/@creativepenguin/standards/eslint/index.js
- Base configuration for JavaScript and TypeScript
- These rules are inherrited by all other configs
./node_modules/@creativepenguin/standards/eslint/node.js
- Additional environment for Node.js
./node_modules/@creativepenguin/standards/eslint/vue.js
- Additional Vue specific rules and plugins
Commitlint
Add a commitlint.config.js
file to the root of the project with the following contents.
module.exports = {
extends: [ '@creativepenguin/standards/commitlint' ],
};
Commitizen
Like ESLint, you must use the relative path to the config instead of node module resolution.
Add the following to package.json
"config": {
"commitizen": {
"path": "./node_modules/@creativepenguin/standards/commitizen.js"
}
}
Husky
All Creative Penguin repos should also use Husky to ensure coding standards before commit.
Install Husky:
npm i -ED husky
In 'package.json', add:
"husky": {
"hooks": {
"pre-commit": "npm run lint",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}