SoYoung210 / soso-tip

🍯소소한 팁들과 정리, 버그 해결기를 모아두는 레포
24 stars 0 forks source link

npm github package 배포시 (org) #36

Open SoYoung210 opened 4 years ago

SoYoung210 commented 4 years ago

Description

GitHub을 이용해서 npm package를 관리할 수 있는 기능이 오픈되었다. (2019.12.2 기준 아직 Beta) 이 과정에서 몇 가지 알게 된점과 삽질기는 다음과 같다.

cli를 사용할 수 있는 이유

npx create-react-app my-app 으로 라이브러리를 사용할 수 있는 이유가 무엇일까? 바로 CRA의 package.json에 있는 bin이라는 속성 덕분이다.

"bin": {
    "create-react-app": "./index.js"
  },

이렇게 명시할시, usr/local/bin 경로에 파일이 추가된다. 터미널에 명령어 입력시 어떤 파일을 실행해야 하는지에 대한 것이다.

create-react-app -> ../lib/node_modules/create-react-app/index.js

이 구문은, create-react-app으로 명령어 실행시 -> 가 가리키는 파일을 실행하겠다는 것이다. node 환경에서 실행되어야 하므로 저 파일의 상단에는 꼭 다음과 같은 설정이 명시되어야 한다.

#!/usr/bin/env node

실제로 CRA의 코드를 살펴보면 확인할 수 있다.

삽질

배포하려고 하는 package name에 org prefix를 붙이지 않았다.

{
  "name": "my-lib",
}

github package로 배포될시, 자동으로 org prefix가 붙기 때문에 붙혀주지 않아야 한다고 오해했다.

@org/@org/my-lib 형태로 사용될것만 같았다. .. . .(실제로 깃헙 패키지를 빠르게 사용해 본 분의 말을 들었을때 이렇게 배포되었다고 한다.)

하지만 공식문서를 보면 명시적으로 .npmrc를 생성하고 name에도 org prefix를 붙일것 을 말하고 있다.

이 이슈때문에 cli사용 안되는 이슈가 꽤 많았을 것으로 예상된다..

정리

사실, 실제로 @org/@org/my-lib 형태로 배포되는 것을 눈으로 확인했었다. 이때는 매우 초기때라서......사실 버그가 아니었나........생각이된다...