201127 TIL NodeJs npm

ToastEggsToast·2020년 11월 27일
0

NodeJs

목록 보기
3/4
post-thumbnail

NPM

npm init

npm init < initializer > can be used to set up a new or existing npm package.

npm init을 실행할 때 name, description, author은 꼭 작성해주기
=> 실행 후 package.json 만들어짐!

{
  "name": "firstnodeserver",
  "version": "1.0.0",
  "description": "firstNode",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "author": "Sunny",
  "license": "ISC",
}

이런 식으로 작성되게 되는데, "start":node app.js 를 scripts에 추가시켜서
npm start를 실행시킬 경우 node app.js 가 실행되도록 할 수 있다.
start는 굉장히 특별한 케이스이고, 그 외 start-server등의 명령어를 추가시키고 싶은 경우에는 npm run start-server 등과 같이 npm run 이후 명령어를 작성해야 실행시켜줄 수 있다.
npm Repository에 존재하는 모듈은 npm에 의해 설치되고 관리되어진다.

npm & packages

npx create-react-app, vue create-app 등에서도 확인할 수 있듯이 package.json에는 dependencies, 혹은 devDependencies 의 key를 확인할 수 있다. 이 친구들은 3rd Party Libraries, 즉 npm install을 통해 설치된 외부 패키지 모듈에 관한 정보를 담고 있다.
npm Repository에서 받아오는 module은 npm을 통해 설치되고 관리된다.

^version 과 ~version의 차이점

npm install을 시켰을 경우, version 앞에 ^ 혹은 ~가 붙어있는 경우를 자주 확인할 수 있다. 둘의 차이점은 무엇일까?

^ : caret

^version “Compatible with version”, will update you to all future minor/patch versions, without incrementing the major version. ^2.3.4 will use releases from 2.3.4 to <3.0.0.

~ : tilde

~version “Approximately equivalent to version”, will update you to all future patch versions, without incrementing the minor version. ~1.2.3 will use releases from 1.2.3 to <1.3.0.

package.json vs package-lock.json

npm install 을 통해 3rd party library를 설치할 경우, package.json 뿐만 아니라 package-lock.json이 함께 설치되는 것을 확인할 수 있다.
package.json은 설치한 3rd party libraries 의 최신 버젼을 설치하게 하고, package-lock.json은 3rd party libraries가 project에 설치되는 시점에서의 버젼을 기억하게 해서, 추후 라이브러리가 업데이트 되어 인스톨 되더라도 오류를 일으키지 않을 수 있도록 해준다.
이에 대해 의존성 트리에 대한 정보를 가지고 있고, 파일(package-lock.json)이 생성된 시점의 의존성 트리가 다시 생성될 수 있도록 보장한다 라고 표현한다.

Global Features vs Core Modules vs Third-party modules

Global Features

다른 설치, 혹은 import 등을 통하지 않고서도 사용할 수 있는 것

Core Modules

fs, http 등과 같이 import를 해와야 사용할 수 있는 것

Third-party modules

npm install을 통해 설치를 하고, import를 통해 사용할 수 있는 것.
여러가지 옵션들이 있는데, --save, --save-dev, -g 등이 있다.
nodemon : nodeapp.js 가 running 중 코드에 변화가 있을 경우, 자동으로 재실행 되게끔 해주는 3rd party modules

Types of Errors

  1. Syntax Errors
  2. Runtime Errors -> Not typos. running 중에 생긴 error
  3. Logical Errors -> Error message x. can be hard to find this.
profile
개발하는 반숙계란 / 하고싶은 공부를 합니다. 목적은 흥미입니다.

0개의 댓글