2.0.0 • Published 3 years ago
@durkdotdev/configs v2.0.0
@durkdotdev/configs
Configuration files for developing with commitlint, ESLint, lint-staged, Prettier, and TypeScript.
Installation
npm install @durkdotdev/configs -D
# or
yarn add @durkdotdev/configs -D
# or
pnpm add @durkdotdev/configs -DUsage
commitlint
- Install commitlint and husky:
npm install @commitlint/{config-conventional,cli} husky -D- Create a
.commitlintrc.jsfile:
module.exports = {
...require("@durkdotdev/configs/commitlint.json")
};- Create a
.husky/commit-msg
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx --no -- commitlint --edit ${1}ESLint
There are two different ESLint configs in this package:
base.jsontypescript.json
- Install configuration file, ESLint, and ESLint plugins:
npm install @durkdotdev/configs eslint eslint-plugin-simple-import-sort eslint-plugin-unused-imports -D
# TypeScript
npm install @durkdotdev/configs @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-plugin-simple-import-sort eslint-plugin-unused-imports typescript -D- Create a
.d-eslint.jsfile to export the config file locally:
module.exports = require("@durkdotdev/configs/eslint/base.json");
// TypeScript
module.exports = require("@durkdotdev/configs/eslint/typescript.json");- Create a
.eslintrc.jsfile with the config file:
module.exports = {
extends: "./.d-eslint"
// ...
};For more on configuring ESLint, see the ESLint Documentation.
Prettier
- Install configuration file and Prettier:
npm install @durkdotdev/configs prettier -D- Create a
.prettierrc.jsfile to extend the config file:
module.exports = {
...require("@durkdotdev/configs/prettier.json")
};For more on configuring Prettier, see the Prettier Documentation.
Usage with ESLint
If using both ESLint and Prettier, it may be helpful to configure ESLint to work with Prettier.
- Install the
eslint-config-prettierpackage:
npm install eslint-config-prettier -D- Extend
.eslintrc.jswith Prettier:
module.exports = {
extends: ["./.d-eslint", "prettier"]
// ...
};Integrating with lint-staged
- Install
huskyandlint-staged:
bash npm install husky lint-staged -D- Add scripts to
package.jsonto initialize husky and lint files:
{
// ...
scripts: {
"lint": "eslint --fix './**/*.{js,json,jsx,ts,tsx}' && prettier --write .",
"prepare": "husky install"
// ...
}
// ...
}- Run the following command from the terminal:
npm run prepare- Create a
.lintstagedrc.jsfile to extend the config file:
module.exports = {
...require("@durkdotdev/configs/lint-staged.json")
};- Create
.husky/pre-commit:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-stagedTypeScript
There are three different tsconfigs in this package:
base.jsonnextjs.jsonreact-library.json
- Install configuration file and TypeScript:
npm install @durkdotdev/configs typescript -D- Create a
tsconfig.jsonto extend a config file:
{
"extends": "@durkdotdev/configs/tsconfig/base.json"
}For more on tsconfig.json, see the TypeScript Documentation.