Membuat pnpm workspace

Irvan Ahmad Prasetya
2 min readJun 30, 2021

--

pnpm logo
Sumber: Github.com

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.

--

--