카테고리 없음

npm 패키지를 만들었다.

hyuckkim 2023. 12. 14. 14:18

regexp-misc - npm (npmjs.com)

 

regexp-misc

my misc tools with regexp. Latest version: 1.1.0, last published: 22 minutes ago. Start using regexp-misc in your project by running `npm i regexp-misc`. There are no other projects in the npm registry using regexp-misc.

www.npmjs.com

리액트를 쓰다 보니까 정규식으로 switch-case를 하고 싶을 때라던가, string과 정규식을 나눠서 split 하고 싶다던가 할 때가 많이 생겨서 만들었다.

 

hyuckkim/regexp-misc (github.com)

 

GitHub - hyuckkim/regexp-misc

Contribute to hyuckkim/regexp-misc development by creating an account on GitHub.

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

 

What is the meaning of the "at" (@) prefix on npm packages?

In the Angular Component Router documentation I just stumbled over a npm command I have never seen before and I don't understand what is going on: npm install @angular/router --save What is the m...

stackoverflow.com

 

+ 함수 하나가 바퀴를 재발명하고 있어서 오늘 그 함수를 삭제했다.

npm version으로 버전을 바꿔 준다. 이거는 breaking change니까 1.1.0로, 즉 npm version 1.1.0 을 입력했다.

그 다음에 npm publish를 다시 입력하면 된다.

 

5. 패키지 쓰기

 

npm i 하고 쓰면 된다. 끝.