반응형
local file dependency 활용
설명
- 일반 npm 모듈 추가해서 사용하는 것과 비슷해서 익숙함
- 버저닝이 불가능하므로 local package 코드 수정 후 yarn install로 수정 사항이 바로 반영되지 않음
- local package 코드 수정 후 수정사항 반영을 위해 별도 명령을 수행해주어야 함
방법
- local package 경로 : ~/local-packages/my-package
- package.json (사용하는 곳)
{
"dependencies": {
"@my-package": "file:local-packages/my-package"
}
}
- 설치
yarn install
- 사용
import mypackage from '@my-package';
- local package 수정사항 반영 명령어
yarn install --force
or
yarn upgrade @my-package
npm link 활용
설명
- 명령어 수행시 local package → 글로벌 node_modules 링크 생성, 글로벌 node_modules → 로컬 node_modules로 링크 생성
- node_modules 하위에 심볼릭 링크가 생성되는 방식이므로 local package 코드 수정시 바로 반영됨
- 사용하기 위해 처음 프로젝트 세팅 후, npm link 명령을 수행해줘야하는 걸 염두하고 사용해야함
방법
- local package 경로 : ~/local-packages/my-package
- package.json (local package)
{
"name": "my-package"
}
- 글로벌, 로컬 node_modules에 링크 생성
npm link local-packages/my-package
- 사용
import mypackage from 'my-package';
yarn link 활용하기
설명
- npm link와 동일한 방식
- yarn link는 글로벌 yarn link 디렉토리에 링크가 생성되어 관리됨
링크 생성
-
라이브러리 프로젝트에 가서 아래 작업 수행
-
package.json
{ "name": "custom-module" }
-
링크 생성
yarn link
링크 연결
-
라이브러리를 사용하는 프로젝트에 가서 아래 작업 수행
-
링크 연결
yarn link custom-module
라이브러리 사용
-
라이브러리를 사용하는 프로젝트에 가서 import하여 사용
import customModule from 'custom-module';
src 하위 디렉토리에 넣어 사용
설명
- 가장 간단한 방법
- local package 디렉토리에 package.json 파일이 들어가있으면 이상하게 동작하므로 삭제 후 사용해야함 (원인 불명..)
방법
- 경로 : ~/src/local-packages/my-package
- 사용
import mypackage from '../local-packages/my-package';
Git Repository 활용
설명
- custom-modules 레파지토리를 만들어 코드를 작성하고, my-app 프로젝트의 dependency로 추가하여 코드를 가져다 사용하는 예시
custom-modules
-
~/package.json
{ "name": "custom-modules", "version": "0.0.0", "author": "custom-modules", "homepage": "https://github.com/your-account/custom-modules", "description": "custom-modules", "main": "dist/index.js", "license": "MIT", "scripts": { "build": "babel src/main -d dist" }, "devDependencies": { "@babel/cli": "^7.10.1", "@babel/core": "^7.10.1", "@babel/preset-env": "^7.10.1" } }
-
~/.babelrc
{ "presets": ["@babel/preset-env"] }
-
~/src/main/index.js
const add = (a, b) => { return a + b; } export default add;
-
모듈 설치 및 빌드
yarn install yarn build
-
빌드 완료 후 commit & push
- custom-modules 레파지토리의 develop 브랜치로 commit & push
my-app
-
~/package.json
- 6676f855d65bd369f17416216f4288fd09be4a93 : repository 접근 권한이 있는 access token
- #develop : 대상 브랜치 지정
- #v1 : 해당 값 변경 후 yarn install 실행해야 레파지토리에 수정된 코드를 다시 받아와 설치함
{ ... "dependencies": { "custom-modules": "git+https://6676f855d65bd369f17416216f4288fd09be4a93@github.com/your-account/custom-modules.git#develop#v1", }, ... }
-
~/src/main/index.js
import customModules from 'custom-modules'; const result = customModules.add(1, 2); console.log(result);
참고
반응형
'Development > NodeJS' 카테고리의 다른 글
[NodeJS] npm에 배포하기 (0) | 2020.12.29 |
---|---|
[NodeJS] Koa Framework 예제 (0) | 2020.12.29 |
[NodeJS] http 모듈을 활용한 웹서버 예제 (0) | 2020.12.29 |
[NodeJS] Javascript를 Shell Script처럼 실행하기 (0) | 2020.12.29 |
[NodeJS] prettier, eslint 설정 (0) | 2020.12.29 |