/pack-a-punch-npm

πŸ¦ΎπŸ”‹ Pack a punch your NPM project, following standards and specifications, linting and formatting your code, automating Git work flows, and improving your styles with emojis πŸ¦„

Primary LanguageJavaScript

Pack a Punch logo

πŸ¦ΎπŸ”‹ Pack a Punch: NPM Project Template Boilerplate

Pack a punch your project, following standards and specifications, linting and formatting your code, automating Git work flows, and improving your styles with emojis πŸ¦„

✨ Features

  • 🎨 ESLint & Prettier as linter and formatter
  • 🐢 Pre-Commit and Commit Husky hooks (Runs linter and formatter before any commit against staged files only!)
  • πŸ’„ Commit nomenclature rules following Conventional Commit Format and Commitizen CLI (emoji powered)
  • πŸš€ Release management policy with commit-and-tag-version, including automagically CHANGELOG.md generation, version bumping and GitTags
  • πŸ”¦ Included npm-check to check for outdated, incorrect, and unused dependencies.
  • πŸ₯·πŸ» Included better-npm-audit to check for dependency vulnerabilities

πŸ›  Getting Started

npm ci               # Install dependencies
npm run dev          # Launch project locally

🎨 Linter & Formatter

npm run lint         # Run ESLint
npm run format       # Run Prettier

β›© Git Commit with Commitizen

git add .            # Add files
npm run cz           # Commit with Commitizen CLI

πŸš€ Release a new version

npm run release             # Bump version and generate CHANGELOG.md
git push --follow-tags      # Push changes and GitTag to origin

πŸ”¦ Check vulnerabilities and update outdated dependencies

npm run npm:audit     # Check dependency vulnerabilities
npm run npm:check     # Check outdated dependencies

πŸ— Build and launch

npm run build         # Compile project
npm run start         # Launch

How to migrate this configuration to an existing project

  1. Install dependencies
npm install --save-dev @commitlint/cli @commitlint/config-conventional better-npm-audit commit-and-tag-version commitizen cz-conventional-changelog devmoji husky lint-staged npm-check

(Optional) Install ESLint and Prettier if you don't have them already: npm install --save-dev prettier eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-sonarjs

  1. Copy the following scripts to your package.json file:
  • format:staged
  • npm:audit
  • npm:check
  • release
  • cz
  • devmoji
  • prepare

(Optional) You can also copy lint and format commands if needed

  1. Copy the corresponding config files
cp -R {.husky,.commitlintrc.cjs,.czrc,.lintstagedrc.cjs} <YOUR_DESTINATION_FOLDER>

(Optional) Copy ESLint, Prettier and VSCode config files: cp -R {.vscode,.prettierrc.cjs,.eslintrc.cjs} <YOUR_DESTINATION_FOLDER>

  1. Prepare husky tools running:
npm run prepare