NPM initializer 기본 만들기
npm 만들기를 조사하던중 궁금한 사항이 생겼다. React 개발을 한번이라도 해본 개발자라면 잘 알고 있을 Facebook에서 제공하는 create-react-app 이라는 스타트킷(?)을 한번이라도 보았을 것이다. 그래서 이건 어떻게 만들어 졌을까? 라는 궁금증에 이에 대하여 조사 및 테스트를 진행해 보았다.
Creact React App은 어떻게 만들었을까?
npx create-react-app my-app
or npm init react-app my-app
my-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
└── src
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── logo.svg
└── serviceWorker.js
└── setupTests.js
위처럼 명령어를 입력하면 위 그림과 같이 react 개발을 위한 기본적인 디렉티로/파일/구조 등을 자동으로 설치하여 개발자고 초기 설정 및 세팅을 하는 수고로움을 덜어주는 아주 좋은 개발자 스타터 킷 이라고 생각했다. 그래서 혹시나 우리도 프로젝트를 새로 세팅할 경우 기본적인 구조를 자동으로 설정해주면 편리하겠다는 생각에서 출발하였다.
검색을 하던중 아래와 같은 사이트에서 대략적인 힌트를 얻었다.
https://github.com/saostad/node-typescript-starter
이 친구도 아마도 나와 같은 생각으로 출발했던거 같기도 하고, 뭔가 단서가 될만한 내용이 있을거 같은 느낌으로 일단 여기서부터 출발 하기로 했다.
어떻게 저 명령어를 실행하면 일반적으로 모듈을 설치하는 npm -i 와 같이 module을 다운받아 설치하는 로직이 아닌 cli가 실행이될까? 그리고 이건 어떻게 할까?
그래서 일단 내용은 뭐가 뭔지 모르겠고(안되면 되게 하라!) 무식하게 일단 package.json부터 살펴본다. 아래의 내용에서 뭔가 단서가 될만한 내용을 찾던 중 아래와 같은 경험있는 개발자들에겐 흔한 단어인 bin 이라는 걸 발견했다. 나머지 내용들은 프로젝트를 진행하던중 많이 봐 왔던 내용이라 어떤 일을 수행하는지 대략 알기에 내가 모르는 내용이 있을까하고 찾아 들어갔다.
그래서 바로 해당 파일을 또 파들어~~~~ 간다. 일단 첫 몇줄부터 내가 원하던 내용이 대략 보이는거 같다. "create folder" 그래 폴더를 만들고 파일을 추가하고 뭐 이런거구나, 결론은 윈도우의 cmd 명령어 창에 프로그램으로 직접 코드를 짜줘야 하는거였구나(ㅠ,.ㅜ)라는 불길한 예감은 항상 적중했다...ㅠ,.ㅜ
위 그림에서 보는 바와 같이 파일이 실행되고 setup()라는 함수를 통해 폴더를 생성하고 파일을 복사하고 기타 npm 명령들을 실행하여 기본 설정을 하는 것 같다.
Creact React App과 같은 instalizer 만들기 실습
자 그래서 위에서 많은 힌트를 얻었으니 직접 만들어보자. "백문이 불여일견, 백견이 불여 일행" 이라고 필자의 철학이다...ㅎㅎㅎ
검색을 하던중 중요한 내용 한가지는 npm 패키지를 만들기 위한 과정에서 명명규칙 앞에 항상 create-라는 단어를 넣어 주어야 한다는 것을 알았다. 이건 규칙인듯 하다. 혹시 npm 만들기를 안해본 사람이거나 모르는 사람은 여기(https://nurioweb.blogspot.com/2021/10/npm.html)를 참고하시기 바랍니다.
패키지를 생성하고 초기화하고 등록하는 전 과정은 npm 만들기와 동일하다. 그래서 여기서는 간단히 npm 만들기와 틀린 부분을 위주로 설명하였다.
현재 디렉토리에서 npm 만들기를 하면 아래와 같이 기본적인 파일들이 만들어 진다. 여기서 package.json을 수정해야 한다."bin": "setup.js" 를 추가하고 setup.js 파일을 해당 위치에 생성하자. 그리고 setup.js을 열어 우리가 원하는 내용을 입력하면 된다.
- npm init로 초기화 및 생성(모듈명 앞엔 create- 필 작성)
- package.json에 "bin"="setup.js" 추가
- setup.js에 원하는 코드 추가(명령창에서 실행할 내용)
- npm 등록
- npm 사용
댓글
댓글 쓰기