npm 패키지를 만들었다.
리액트를 쓰다 보니까 정규식으로 switch-case를 하고 싶을 때라던가, string과 정규식을 나눠서 split 하고 싶다던가 할 때가 많이 생겨서 만들었다.
hyuckkim/regexp-misc (github.com)
이거는 깃 주소.
나중에 멋진 패키지를 올릴 때를 위해, 했던 프로세스를 정리해보자.
1. npm init을 하자.
질문에만 성실히 답하면 package.json을 자동으로 생성해 준다.
name, version, license 등 안 중요한 질문이 없다.
여기서 나중에 뭔가 고치고 싶다면 버전을 올려야 한다.
2. 자바스크립트 코드를 만든다.
나는 타입스크립트로 적었다.
tsc -d
js 파일과 d.ts 파일을 생성해주는 typescript 명령어다.
3. .npmignore 파일과 .gitignore 파일을 만든다.
말 그대로 npm에 업로드할 때, git에 업로드할 때 무시할 파일들을 적는 칸이다. npm은 기본적으로 git 관련 파일들을 무시한다. 몇몇 내가 만든 파일만 적어주면 된다.
.gitignore 파일에는 빌드된 파일들 (index.js, index.d.ts)을 적었다.
.npmignore 파일에는 빌드 전 파일들 (index.ts, tsconfig.json)을 적었다.
4. 업로드한다.
우선 npm whoami로 로그인했는지 확인한다.
npm login을 입력하면 브라우저로 가서 로그인하라고 한다. 로그인했다.
npm link를 입력하면 패키지를 테스트해 볼 수 있다는데, npmignore가 적용되지 않는다. 도움은 안 되는 것 같다.
npm publish를 입력하면 그대로 패키지가 업로드된다.
이미 같은 이름의 패키지가 있다면 오류가 발생할 것이다.
다른 멋들어진 이름을 찾거나 scoped module로 바꿔야 된다.
scoped module은 @로 시작하는 패키지들이다.
https://stackoverflow.com/questions/36667258
+ 함수 하나가 바퀴를 재발명하고 있어서 오늘 그 함수를 삭제했다.
npm version으로 버전을 바꿔 준다. 이거는 breaking change니까 1.1.0로, 즉 npm version 1.1.0 을 입력했다.
그 다음에 npm publish를 다시 입력하면 된다.
5. 패키지 쓰기
npm i 하고 쓰면 된다. 끝.