ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • npm install과 npm install --production의 차이는?
    Dev 2024. 8. 15. 10:16
    728x90

    npm install

    • 설치 대상: package.json 파일에 정의된 모든 의존성(dependencies 및 devDependencies)을 설치합니다.
    • 사용 시기: 개발 환경에서 사용됩니다. 개발 중에 필요한 모든 패키지(예: 테스트 라이브러리, 빌드 도구 등)를 설치합니다.

    npm install --production

    • 설치 대상: package.json 파일에 정의된 dependencies만 설치합니다. devDependencies는 설치되지 않습니다.
    • 사용 시기: 프로덕션 환경에서 사용됩니다. 실행에 필요한 최소한의 패키지만 설치하여 이미지 크기를 줄이고, 보안 및 성능 최적화를 꾀할 수 있습니다.

    예시

    • 개발 중이라면, npm install을 사용하여 테스트 및 빌드 도구를 포함한 모든 패키지를 설치합니다.
    • 프로덕션 환경에서 애플리케이션을 배포할 때는 npm install --production을 사용하여 런타임에 필요한 패키지만 설치하고, 개발 도구를 제외하여 컨테이너의 크기와 보안 위험을 줄입니다.

     

    (참고)

    devDependencies의 용도

    1. 빌드 도구:
      • 애플리케이션을 빌드하거나 번들링할 때 필요한 도구들.
      • 예: Webpack, Babel, Gulp.
    2. 테스트 프레임워크:
      • 코드의 유닛 테스트, 통합 테스트, 엔드 투 엔드 테스트를 수행하는 도구들.
      • 예: Mocha, Jest, Chai.
    3. Linting 도구:
      • 코드의 스타일과 품질을 검사하고 유지하는 데 사용되는 도구들.
      • 예: ESLint, TSLint.
    4. 문서화 도구:
      • 코드 문서를 자동으로 생성하거나 관리하는 도구들.
      • 예: JSDoc.
    5. 개발 서버:
      • 개발 중에 사용할 수 있는 간이 서버 또는 로컬 서버 도구들.
      • 예: nodemon, webpack-dev-server.
    6. 타입 체커:
      • TypeScript와 같은 정적 타입 체커를 사용할 때 필요한 패키지들.
      • 예: TypeScript.
    {
      "name": "my-project",
      "version": "1.0.0",
      "dependencies": {
        "express": "^4.17.1"
      },
      "devDependencies": {
        "nodemon": "^2.0.7",
        "eslint": "^7.23.0",
        "mocha": "^8.3.2"
      }
    }

     

     

    • dependencies: 애플리케이션이 런타임에 의존하는 패키지(예: express).
    • devDependencies: 개발 과정에서만 필요한 패키지(예: nodemon, eslint, mocha).

     

    728x90
Designed by Tistory.