Proyek ini menggunakan npm workspace agar dapat dengan mudah mengelola dependency antar sub-project.
Sebelum dapat melakukan pengembangan, struktur direktori sebagai berikut harus dibuat:
proyek3 # workspace
├── backend
│ └── package.json # package.json untuk backend (sub-project)
├── postgres-database
│ └── package.json # package.json untuk postgres-database (sub-project)
├── ... # sub-project lain
└── package.json # package.json untuk proyek3 (workspace)
Struktur direktori tersebut dapat dibuat dengan cara:
$ git clone https://github.com/d4jtk18p3/proyek3-workspace.git proyek3
$ cd proyek3
$ git clone https://github.com/d4jtk18p3/proyek3-backend backend
$ git clone https://github.com/d4jtk18p3/proyek3-postgres-database postgres-database
$ git clone https://github.com/d4jtk18p3/proyek3-service-absensi service-absensi
$ git clone https://github.com/d4jtk18p3/proyek3-service-penilaian service-penilaian
$ git clone https://github.com/d4jtk18p3/proyek3-service-logbook.git service-logbook
$ git clone https://github.com/d4jtk18p3/proyek3-notification-service.git notification-service
$ git clone https://github.com/d4jtk18p3/proyek3-service-monitoring service-monitoring
$ npm install
Masuk ke dalam direktori dari sub-project yang akan dikembangkan dan ikuti arahan README.md
dari sub-project yang bersangkutan
Untuk menambah sub-project baru langkah yang diperlukan yaitu:
- Buat repositori dengan nama
proyek3-<nama-sub-project>
- Inisiasi project ke dalam repositori
- Jika project baru yang dibuat adalah project nodejs, ubah entri
name
dalampackage.json
menjadi@proyek3/<nama-sub-project>
- Tambahkan nama direktori sub-project ke dalam entri
workspaces
pada package.json dari repository ini - Tambahkan dokumentasi mengenai sub-project ke dalam README.md dari repository ini
Untuk menggunakan sub-project sebagai dependency, pastikan terdapat entri main
dan/atau exports
dalam package.json
dari sub-module yang akan digunakan. Lakukan hal seperti berikut untuk melakukan import
import <menyesuaikan> from '@proyek3/<nama-sub-project>'