DEV Community

Cover image for Modern JavaScript Project Workflow/Setup with Git, CI/CD, Code Quality, Tooling and more
Rajesh Royal
Rajesh Royal

Posted on

13 4

Modern JavaScript Project Workflow/Setup with Git, CI/CD, Code Quality, Tooling and more

Modern Project


  • Version control
  • Automated CI / CD
  • Code quality
  • Tooling
  • Module support
  • Documented API
  • Demos

Build Process


The automated sequence of tasks which runs on each push, tag, and/or release

Stages

  1. Install
  2. Lint
  3. Test
  4. build
  5. Push
  6. Deploy

Jobs

  • Install
    • clean install - npm ci
    • security audit - npm audit
  • Lint
    • linter - eslint / stylelint
    • formatter prettier
  • Test
    • test suite - jest / mocha / ava
    • code coverage - nyc / codecov / coveralls
  • Build
    • transpile - babel / typescript / flow
    • pre-process (compile, auto-prefix, etc.) - sass / less / postcss
    • uglify (minify, mingle, optimize, etc.) - uglify-js / terser
    • bundle (concat, tree-shake, etc.) - webpack / rollup / parcel
    • compress (gzip, etc.)
    • other
      • copy / delete / move files
      • check bundle size
      • strip unused code (ts/flow/proptypes)
  • Push
    • release - GitHub / bitbucket / Gitlab
    • publish - npm /other registries
  • Deploy
    • host - heroku / surge / github-pages / etc.
  • Documentation

Task execution


  • CLI (npm) or
  • task runner
    • grunt, gulp, brunch

Your Feedbacks are more than welcome 🤗🤗

Top comments (2)

Collapse
 
dailydevtips1 profile image
Chris Bongers •

Nice article!

Perhaps you can elaborate a bit more per step in a future article, like in depth per fase?

Collapse
 
rajeshroyal profile image
Rajesh Royal •

yes. I will definitely try to do this. Thanks, Chris 🙂

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more