본문 바로가기

Node.js

npm --save가 동작하지 않을때.(package.json저장)

문제

 

//package.json
{
  "name": "node_bird_back",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon app.js"
  },
  "author": "JeongJunHo94",
  "license": "ISC",
  "dependencies": {
    "mysql2": "^2.0.2",
    "sequelize": "^5.21.3",
    "express": "^4.17.1",
    "cors": "^2.8.5"
  },
  "devDependencies": {
    "sequelize-cli": "^5.5.0",
    "nodemon": "^1.19.1"
  },
  "description": ""
}

 

npm init으로 생성하고, 패키지 버전관리를 하는 package.json, 모듈화 시스템을 만들때 여러 패키지를 사용하는 경우가 많다.

 

이런 경우 package.json에 자신의 패키지 버전을 기록하고, 해당 json파일을 가지고 통합된 개발환경을 구축할 수 있다는 장점이 있다.

 

 

$ npm init

위 명령어를 통해서 package.json을 생성할 수 있고 각종 명령어를 통해 package.json파일을 업데이트 시킬 수 있다.

 

대표적으로 설치를 할때 접미어로 --save를 붙여서 자동으로 package.json에 기록할 수 있도록 해주는데,

 

오늘의 문제는 이 --save가 작동이 안될때 해결방법이다.

 

 

 

해결법

 

 

1번. 코드편집기에서 package.json이 열려있을때.

 

 

위처럼 코드편집기를 사용할때,  package.json이 열려있을경우 반영이 안될수있다.

package.json을 닫아주고 다시한번 실행해본다.

 

 

 

2번. 파일 속성에 읽기전용으로 체크되어 있을때

 

아주 가끔 이렇게 package.json파일이 읽기전용으로 되어있는 경우가 있다.

이런경우에는 해당 디렉토리를 찾아들어가 속성-특성에서 읽기전용박스를 해제해주면 된다.

 

 

 

3번. npm init을 한번 더 해주기.

 

반영이 안된다면 이처럼 npm init 명령어를 한번 더 실행해주면 최신버전의 package.json이 생성될 수 있다.