Node.js

[Node.js] Node.js ESM 사용하기

건휘맨 2024. 11. 8. 13:04

ESM이란?

ESM(ECMAScript Modules)은 import와 export를 사용해 모듈을 다루는 방식으로, 최신 JavaScript 표준을 따른다.

Node.js에서도 ESM을 통해 브라우저와 서버에서 일관된 코드 구조를 유지할 수 있다.

 

프로젝트 디렉토리를 만들고 터미널을 통해 폴더로 들어가준다.

my_app 이라는 폴더를 만들었다.

폴더로 들어가서

npm init

명령어를 입력해주고 프로젝트의 기본 정보를 설정하는 부분이 나온다.

각 값을 꼭 채울 필요는 없고, 프로젝트 성격에 맞게 선택적으로 입력하면 된다.

 

 

  • package name: 패키지 이름. 프로젝트가 npm에 배포될 예정이라면, 고유한 이름을 사용해야 한다
  • version: 프로젝트의 버전. 기본값 1.0.0을 그대로 사용하거나 업데이트 시마다 버전을 수정 가능
  • description: 프로젝트 설명. 프로젝트 목적이나 기능에 대한 간단한 설명을 입력
  • entry point: 실행 파일의 진입점. index.js를 기본으로 하지만, 다른 파일을 메인으로 사용할 경우 변경 가능
  • test command: 테스트 명령어. 프로젝트의 테스트 스크립트를 입력할 수 있다. 없으면 빈칸
  • git repository: 프로젝트의 Git 저장소 URL. GitHub 또는 GitLab에 연결할 경우 입력하고, 필요 없으면 생략해도 된다.
  • keywords: 검색에 도움이 될 키워드. 여러 키워드를 쉼표로 구분해 입력할 수 있으며, 필요 없으면 생략 가능
  • author: 작성자 정보. 이름이나 이메일을 입력 가능

 

작성 후 yes 입력하면 프로젝트 폴더 안에 package.json 라는 파일이 생성된다.

파일 안에 "type": "module"을 추가해 ESM 모드를 활성화해준다.

{
  "name": "my_app",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}

 

 

npm init으로 package.json을 설정하면, package.json은 의존성부터 프로젝트 설정까지 한 곳에서 관리하게 해주는 파일이기 때문에

해당 디렉토리에서 npm으로 패키지 관리, 스크립트 실행 등 다양한 작업을 더 쉽게 관리할 수 있다. 

 

그 후 프로젝트 폴더 안에 index.js 라는 폴더를 만들어주고 다음과 같이 작성해준다.

이제 require 대신 import로 모듈을 불러올 수 있다.

 

import {createServer} from 'http';

const server = createServer((req, res) => {
    res.writeHead(200, {'Conntent-type' : 'text/plain'});
    res.write('Hello node.js');
    res.end();
});

server.listen(3000, () => {
    console.log('Server is listening on port 3000')
});

 

터미널에 node index.js 입력하면 정상적으로 작동한다.