Membuat pnpm workspace
Install pnpm
Sebelum membuat workspace dengan pnpm, mari kita install pnpm terlebih dahulu. Untuk menginstall pnpm, kita dapat menggunakan npm atau npx. Berikut ini cara install pnpm dengan npm dan npx.
Menggunakan npm
npm install -g pnpm
Melalui npx resolusi
npx pnpm add -g pnpm
Untuk cara instalasi lainnya dapat kita cek di https://pnpm.io/installation.
Membuat workspace
Untuk membuat workspace dengan pnpm, kita cukup membuat file pnpm-workspace.yaml
di folder workspace kita. Untuk penjelasan lengkap file pnpm-workspace.yaml
dapat diakses di https://pnpm.io/pnpm-workspace_yaml.
Selain membuat file pnpm-workspace.yaml, kita juga dapat membuat file .npmrc
untuk mengatur workspace kita. Kita dapat mengubah path untuk penyimpanan store-dir, path untuk node_modules, dll. File .npmrc
bersifat optional. Untuk melihat daftar konfigurasinya dapat dilihat di https://pnpm.io/npmrc.
Setelahnya kita bisa menyimpan project kita dalam folder workspace. Kita dapat menggunakan perintah pnpm install
atau pnpm i
untuk menginstall dependencies menggunakan pnpm, menggantikan npm install
. Dan menggunakan perintah pnpm add <pkg>
untuk menggantikan perintah npm i <pkg>
.
Berikut ini struktur folder kita, jika kita membuat folder NodeJS
sebagai workspace.
NodeJS # Workspace
├── project-1 # Project 1
│ ├── node_modules
│ ├── package.json # package.json project 1
│ └── ...
├── project-2 # Project 2
│ ├── node_modules
│ ├── package.json # package.json project 2
│ └── ...
├── node_modules # node_modules project 1 dan project 2
├── pnpm-workspace.yaml
└── .npmrc # optional
Untuk node_modules pada setiap project akan link ke node_modules pada workspace. Karena setiap project dalam workspace berbagi node_modules, maka akan lebih menghemat storage kita.
Nb: Untuk project yang dibuat menggunakan npx
atau pnpx
seperti create-react-app
atau create-next-app
node_modules akan disimpan di masing-masing project bukan workspace, untuk berbagi node_modules yang sama kita harus menghapus folder node_modules dan menginstall ulang menggunakan pnpm i
.
Update: Penggabungan node_modules untuk beberapa project memiliki kekurangan, setiap melakukan install dependency maka pnpm akan mendownload ulang semua dependency, sehingga akan memperlambat proses install dependency dan lebih banyak menggunakan paket data.