angular를 이용한 projects 생성
(배포용)library 만들기
독립된 library를 만들면 npm과 같은 배포도 편리하고 동일 라이브러리를 다수의 프로젝트에 사용함으로서 유지 보수도 편리합니다. 여기서는 독립된 library를 만들고 현재 프로젝트에 import하여 사용하는 것에 대해서 다루겠습니다.
1. 신규 App 생성
먼저 angular app을 만들고 해당 디렉토리로 이동한다.
기존에 App이 있으시면 바로 다음 단계로 이동
ng new my-app
cd my-app
2. 라이브러리 생성 (여기서 부터)
ng generate library [LibraryName] --prefix=enl
위와 같이 생성하면 기존 프로젝트에 아래와 같이 프로젝트 폴더가 생성되고 하위로 신규 라이브러리가 생성되며 관련 파일들이 자동 생성됩니다.
- projects
- LibraryName
- src
...
- tsconfig.json
아래의 paths를 보면 참조하는 곳이 dist 이하의 [LibraryName] 이고 아직 존재하지 않는다.
아래에 설명된 라이브러리 빌드 단계를 거치면 이곳에 생성이 되고 그러면 우리는 메인 App에서 직접 호출하여 사용할 수 있다.
.....................
"compilerOptions": {
.....................
"paths": {
"[LibraryName]": [
"dist/[LibraryName]"
]
},
- angular.json
.....................
"projects": {
.....................
"[LibraryName]": {
}
.....................
}
3. 라이브러리 빌드
ng build LibraryName // angular 7 이후 버젼은 --prod 없이 바로 사용한다.
ng build --prod LibraryName
출력메시지
✔ Built ng-count-up-js
------------------------------------------------------------------------------
Built Angular Package
- from: D:\DEV\projects\[LibraryName]
- to: D:\DEV\dist\[LibraryName]
------------------------------------------------------------------------------
Build at: 2023-07-11T07:07:33.853Z - Time: 3982ms
여기 까지 마쳤으면 신규프로젝트에서 Library를 import 하여 테스트할 수 있다.
- app.module.ts
import { MyModule } from '[LibraryName]';
Dependencies vs devDependencies vs peerDependencies
Dependencies | devDependencies | peerDependencies |
---|---|---|
dependency는 프로젝트가 효과적으로 작동하는 데 필요한 라이브러리입니다. | DevDependencies는 개발 중에 개발자에게 필요한 패키지입니다. | peerDependency는 패키지가 npm 패키지의 특정 버전과 호환됨을 지정합니다. |
패키지가 node_modules 디렉터리에 아직 없으면 자동으로 추가됩니다. | 패키지를 설치하면 npm이 자동으로 devDependencies을 설치합니다. | peerDependencies는 자동으로 추가되지 않습니다. Peer Dependency를 추가하려면 package.json 파일을 수동으로 수정해야 합니다. |
코드를 실행할 때 필요한 라이브러리입니다. | Devdependencies는 개발 프로세스 중 어느 시점에 필요할 수 있지만 실행 중에는 필요하지 않습니다. | PeerDependencies는 자신의 패키지를 게시할 때, 즉 다른 프로그램에서 사용할 코드를 개발할 때만 발생합니다. |
최종 코드 번들에 포함 | 최종 코드 번들에 포함 | 자체 패키지를 게시하는 경우에만 포함될 수 있습니다. |
다음처럼 실행합니다.
npm install
|
다음처럼 실행합니다.
npm install
|
수동으로 package.json 을 변경합니다. |