[NPM] 패키지 설치시 더 이상 '--save' 플래그를 입력하지 않아도 되는 이유

2022. 6. 24. 00:30·Learning-Log/Computer Science
728x90
320x100

인터넷상에서 패키지 설치와 관련된 내용을 읽다보면 패키지 설치 코드에서 --save가 들어간 코드를 종종 접하게 된다. 
하지만 이는 과거의 흔적이라고 볼 수 있다. 현재의 시점에서 '--save' 플래그는 더 이상 쓰지 않아도 된다.

 

--save 의 뜻과 기능

--save 옵션을 통해 설치된 패키지는 package.json 파일의 dependencies 목록에 기록된다. 따라서 향후 npm install (혹은 npm i)를 입력하게 되면 해당 패키지가 설치된다.

그렇다면, --save를 입력하지 않으면 어떻게 될까?

$ npm install <package>


이런 경우 해당 패키지는 임시로 설치되고, package.json의 dependencies에는 추가되지 않기 때문에 언제든 node_modules 폴더를 지운 뒤, $ npm i 를 통해 간편하게 이전 패키지 상태로 복구가능하다.

하지만!! 이는 과거 버전의 npm에서의 설명이다.

 

npm 5.0+ 에서의 기본값 변경

하지만, 최근의 개발환경에 있어서는 어떤 패키지를 임시로 설치하는 경우보다는 dependencies에 추가하여 영구적으로 설치할 일이 더 많은게 사실이다.

그러다보니 npm 5.0+ 버전부터는 --save 플래그를 더 이상 입력하지 않아도, 기본값으로 --save를 입력한 것과 같이 동작하도록 바뀌었다.

Default : true 이다!

따라서 이제는 아래와 같이 입력하면 자동으로 dependencies에 추가된다.

$ npm install <package>

그렇다면 이제 반대로, 임시로 설치하고 싶을땐 어떻게 하면 될까?
바로 --no-save 플래그를 입력해주면 된다.

$ npm install <package> --no-save

 

정리

npm 버전 명령어 package.json의
dependencies에 추가여부
npm 5.0
미만
$ npm install <package> X
$ npm install <package> --save O
npm 5.0
이상
$ npm install <package> O
$ npm install <package> --no-save X

 

보너스

devDependencies로 추가하고 싶을때는 아래의 플래그를 쓰면 된다.

$ npm install <package> -D

-D 는 --save-dev 와 같은 기능을 한다. 그 외에 아래와 같은 단축 플래그가 존재한다.

  • -a: --all
  • --enjoy-by: --before
  • -c: --call
  • --desc: --description
  • -f: --force
  • -g: --global
  • --iwr: --include-workspace-root
  • -L: --location
  • -d: --loglevel info
  • -s: --loglevel silent
  • --silent: --loglevel silent
  • --ddd: --loglevel silly
  • --dd: --loglevel verbose
  • --verbose: --loglevel verbose
  • -q: --loglevel warn
  • --quiet: --loglevel warn
  • -l: --long
  • -m: --message
  • --local: --no-global
  • -n: --no-yes
  • --no: --no-yes
  • -p: --parseable
  • --porcelain: --parseable
  • -C: --prefix
  • --readonly: --read-only
  • --reg: --registry
  • -S: --save
  • -B: --save-bundle
  • -D: --save-dev
  • -E: --save-exact
  • -O: --save-optional
  • -P: --save-prod
  • -?: --usage
  • -h: --usage
  • -H: --usage
  • --help: --usage
  • -v: --version
  • -w: --workspace
  • --ws: --workspaces
  • -y: --yes

또한, 기본 설정값을 보고 싶을때는 아래의 명령어로 확인 가능하다.

$ npm config ls -l

save = true 를 볼 수 있다.

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Learning-Log > Computer Science' 카테고리의 다른 글

[TS] 타입스크립트의 기초(1) - type 키워드 및 Type에 대한 이해  (0) 2022.07.05
[TS] 타입스크립트 Generic에 대한 이해와 활용  (0) 2022.07.01
[JS] 자바스크립트의 배열(Array)은 배열이 아니다.  (2) 2022.06.19
[VSCode] remote.wsl:connection Method 를 알아보자  (1) 2022.06.19
[WSL] WSL 기본 명령어  (0) 2022.06.19
'Learning-Log/Computer Science' 카테고리의 다른 글
  • [TS] 타입스크립트의 기초(1) - type 키워드 및 Type에 대한 이해
  • [TS] 타입스크립트 Generic에 대한 이해와 활용
  • [JS] 자바스크립트의 배열(Array)은 배열이 아니다.
  • [VSCode] remote.wsl:connection Method 를 알아보자
Xpectation
Xpectation
理
    반응형
  • Xpectation
    자기실현적 기대
    Xpectation
  • 전체
    오늘
    어제
    • 전체보기 (214)
      • Thinking-Log (42)
        • 인간에 관한 생각 (22)
        • 사회현상에 관한 생각 (9)
        • 말씀에 관한 생각 (4)
        • 기타 잡념 (7)
      • Trading-Log (8)
        • 주식 잡념 (9)
      • Learning-Log (104)
        • Computer Science (70)
        • Economics (21)
        • Law (1)
        • ETC (12)
      • Review-Log (43)
        • 食思味 (13)
        • 聽思聰 (6)
        • 視思明 (12)
        • IT 제품, 전자기기 (7)
        • 게임 (0)
        • 기타 (5)
      • Creating-Log (5)
        • 주방 (0)
        • 서재 (5)
        • 기타 (0)
      • Photo-Log (3)
        • 사진 일기 (3)
      • 미분류 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • 티스토리 홈
  • 공지사항

  • 인기 글

  • 태그

    딥러닝
    주식
    클래식음악
    마인드위즈Pro
    경제학
    수면유도
    ASMR
    오블완
    매매일지
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.1
Xpectation
[NPM] 패키지 설치시 더 이상 '--save' 플래그를 입력하지 않아도 되는 이유
상단으로

티스토리툴바