모범 사례를 사용하여 처음부터 Node.js 프로젝트를 만드는 방법은 무엇입니까?

4095 단어

안녕, 데브!



Node.js 프로젝트를 만드는 방법은 무엇입니까? 마스터하기 위해 구성하는 것이 중요합니까? 따라서 초기 프로젝트, 코드 품질, 조작성 및 확장성을 빌드하는 데 필요한 사항을 살펴보겠습니다.

스포일러: 결승전에는 모든 구성이 포함된 github 상용구 저장소가 있습니다.




갑시다!



기초적인npm init -y패키지를 관리하기 위해 package.json을 생성합니다.

힘내 별칭
커밋을 최적화하는 데 사용할 수 있는 멋진 기능입니다. 항상 추가하고 커밋해야 합니까? 그렇다면 두 개가 아닌 하나의 명령으로 자동화하는 것이 어떻습니까? Git 별칭 프리티 형식 지정은 git 콘솔 출력을 더 나은 방식으로 표시하는 데 도움이 될 수 있습니다.[alias] c = !git add --all && git commit -m
그런 별칭을 완전히 처리하려면 여기 내 gist를보십시오.

기존 커밋 린터npm install git-commit-msg-linter
Conventional Commits pattern을 사용하도록 강제하는 git linter는 다음과 같습니다.

fix
feature
docs
chore
tests
style
refactor


힘내git init를 실행한 후 이미 .gitignore를 추가하고 다음과 같은 폴더에 추가합니다.

node_modules
dist
coverage


코드 품질을 위해 Husky 및 lintStaged
아래는 프로젝트 루트 폴더에 추가할 .lintstagedrc.json 구성입니다. 커밋은 모든 린트 문제와 모든 테스트를 수정하기 직전에 완료될 것임을 보장합니다.

{
    "*.ts": [
        "eslint 'src/**' --fix",
        "npm run test:staged"
        "git add"
    ]
}


그리고 여기.huskyrc.json에서 커밋하기 전에 esling이 실행되도록 보장합니다.

{
    "hooks":{
        "pre-commit": "eslint"
    }
}


Javascript 표준 스타일 및 eslint
standard JS에 대해 알아야 합니다. Javascript 파일만 있는 경우 eslint를 사용하지만 Typescript를 사용하는 경우 VSCode에서 플러그인 ESlint를 사용할 수 있습니다use.

package.json에서 스크립트 구성
스크립트를 구성할 수 있으며 이미 모두 사용할 준비가 되어 있습니다.

  "scripts": {
    "lint": "npx eslint .",
    "test": "jest"
  },


라이브러리 테스트
필요한 경우 단위 테스트를 위해 Jest 또는 Mocha, chain, sinon을 설치합니다. 테스트 통합을 위한 Frisby와 End2End 테스트를 위한 Cypress.

도커
물론 인프라(데이터베이스 및 기타 서비스)와 함께 docker-compose.yml를 추가해야 합니다.

version: '3.1'

services:

  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/


소프트웨어 아키텍처
DDD + Clean Architecture와 같은 것을 사용하려는 경우 계층 구조로 폴더를 만들 수 있습니다.


여기에서 모든 기사를 얻으십시오
모든 구성으로 완전한 상용구
링크: https://github.com/luizcalaca/node-typescript-boilerplate-configuration



콘택트 렌즈
https://www.buymeacoffee.com/calaca

좋은 웹페이지 즐겨찾기