yarn
yarn 이란, 다른 개발자들의 코드를 사용하거나, 자신의 코드를 공유할 수 있도록 해주는 패키지 매니저의 일종이다. 개발자들의 코드를 공유할 수 있어서, 문제를 해결할 때나 자신의 소프트웨어를 개발하는 데 큰 도움을 줄 수 있다. package.json 에 원하는 패키지를 명시하면, yarn 은 명시된 패키지들을 참조하여 프로그램을 실행한다.
yarn run [script] - Normal
yarn run 은 자주 사용하는 명령어들을 간단한 명령어로 매핑하여 쉽게 사용할 수 있게 해주는 기능이다. 명령어 매핑은 package.json 파일에서 scripts
라는 Key 안에 명시하면 된다.
{
"name": "my-package",
"scripts": {
"build": "babel src -d lib",
"test": "jest"
}
}
name
은 명시하지 않아도 run 이 된다. 그 외에 scripts
라는 key 에 각 옵션명과 명령어를 매핑하여 JSON 형식으로 명시하면 된다. 명시한 후에
yarn run test
과 같이 명령어를 입력하면, scripts
에서 명시했던 test
에 매칭되는 jtest 명령어가 실행된다. test
가 곧 jtest
명령어이기 때문에, jtest에서 사용할 수 있는 옵션도 같이 사용할 수 있다.
yarn run test -o --watch
위와 같은 yarn run test -o --watch
는 jtest -o --watch
와 같은 뜻이라고 보면 된다.
yarn run [script] - Exec
scripts
에는 명령어만 매핑할 수 있는 것이 아니라 node_modules/.bin/
안에 있는 실행 파일들도 매핑이 가능하다.
"scripts": {
"dev": "nodemon --exec babel-node server.js",
}
위와 같이 dev
와 node_modules/.bin/
폴더 안에 있는 nodemon
파일을 실행하는 코드를 매핑할 수 있다. 그리고 babel-node로 server.js 파일을 같이 실행하는 명령어도 추가했다. 매핑한 후에 yarn run dev
명령어를 입력하면, nodemon이 실행되고 server.js가 같이 실행되는 것을 볼 수 있다.
yarn run [script] - Pre & Post
하나의 script가 실행한 전이나 후에 무언가를 실행하도록 명령어를 매핑할 수도 있다.
{
"name": "my-package",
"scripts": {
"build": "babel src -d lib",
"prebuild": "jest"
}
}
위와 같이 build
script가 있고, 앞에 pre를 붙인 prebuild
script를 추가하면, build
에 해당되는 명령어가 실행되기 이전에 prebuild
의 명령어가 실행된다. pre 외에도 postbuild
로 매핑을 하면, build
명령어가 수행된 후에 postbuild
의 명령어가 실행된다.
yarn run env
yarn run env
명령어는 런타임에 사용 가능한 환경 변수 목록을 출력한다. 필요에 따라 지금까지 봐왔던 것처럼 scripts
안에 오버라이드 할 수 있다.
yarn run
yarn run
만 입력했을 때, package.json
파일에 scripts
가 명시된 것이 없다면 패키지에서 실행할 수 있는 모든 스크립트를 나열한다. 반면에, scripts
를 정의해둔다면, scripts
에서 매핑했던 명령어들이 나열되고, 어떤 명령어를 쓸지 선택할 수 있도록 해준다.
'Back-End' 카테고리의 다른 글
MacOS 에서 MongoDB 설치하기 (Intel, M1) (3) | 2022.04.29 |
---|---|
Linux 명령어 모음 (1) | 2022.04.06 |
pm2를 사용하여 서버를 백그라운드로 실행하기 (0) | 2022.04.04 |