Manajemen Paket Efisien di Linux dengan pnpm
Pendahuluan
Dalam lanskap manajemen paket yang terus berkembang untuk proyek JavaScript dan Node.js, PNPM (Performant NPM) telah muncul sebagai alternatif yang kuat untuk alat tradisional seperti npm dan Yarn. Bagi pengguna Linux, PNPM menawarkan serangkaian fitur dan keuntungan yang sangat menarik yang dapat secara signifikan meningkatkan alur kerja pengembangan dan manajemen proyek.
PNPM adalah manajer paket yang bertujuan untuk cepat, efisien dalam penggunaan ruang disk, dan dapat diandalkan. Ini dibuat untuk mengatasi beberapa keterbatasan dan ketidakefisienan npm, sambil juga menawarkan manfaat unik yang membedakannya dari alternatif lain seperti Yarn. Seiring dengan terus populernya Linux sebagai platform untuk pengembangan, terutama di lingkungan sisi server dan cloud, adopsi PNPM terus meningkat di kalangan pengguna Linux.
Panduan ini akan menjelaskan mengapa PNPM bermanfaat bagi pengguna Linux:
-
Efisiensi Ruang Disk: PNPM menggunakan pendekatan unik untuk menyimpan paket, yang sangat berharga di lingkungan Linux di mana ruang disk mungkin terbatas, seperti dalam aplikasi terkontainer atau di server pribadi virtual.
-
Kinerja: Pengguna Linux sering memprioritaskan kinerja, dan PNPM memberikan waktu instalasi yang lebih cepat dan penggunaan sumber daya yang lebih sedikit dibandingkan dengan manajer paket tradisional.
-
Dukungan Monorepo: Untuk proyek kompleks dan organisasi yang menggunakan struktur monorepo, dukungan bawaan PNPM sangat berguna dalam pengembangan berbasis Linux dan pipeline CI/CD.
-
Kompatibilitas: PNPM bekerja dengan mulus dengan sistem Linux, terintegrasi dengan baik dengan berbagai distribusi dan alat pengembangan yang umum digunakan dalam ekosistem Linux.
-
Keamanan: Dengan fitur keamanan yang ditingkatkan, PNPM sejalan dengan sifat sadar keamanan banyak pengguna dan administrator Linux.
Sepanjang panduan ini, kita akan membahas manfaat ini, menjelajahi cara menginstal dan menggunakan PNPM di Linux, dan memberikan praktik terbaik untuk mengintegrasikan PNPM ke dalam alur kerja pengembangan berbasis Linux Anda. Apakah Anda seorang pengembang Linux berpengalaman atau baru memulai, pandangan komprehensif tentang PNPM ini akan membantu Anda memanfaatkan potensi penuhnya dalam proyek Anda.
Apa itu PNPM?
PNPM, yang merupakan singkatan dari "Performant NPM", adalah manajer paket yang cepat dan efisien dalam penggunaan ruang disk untuk proyek JavaScript dan Node.js. Ini dibuat sebagai alternatif untuk npm (Node Package Manager) dan Yarn, dengan tujuan untuk menyelesaikan beberapa masalah dan ketidakefisienan yang ada pada manajer paket yang lebih tradisional ini.
Definisi dan Konsep Dasar
Pada intinya, PNPM berfungsi mirip dengan manajer paket lainnya: ia memungkinkan pengembang untuk menginstal, memperbarui, dan mengelola ketergantungan untuk proyek mereka. Namun, pendekatan PNPM dalam menyimpan dan menghubungkan paket membedakannya:
-
Penyimpanan Berbasis Konten: PNPM menggunakan sistem file berbasis konten yang unik untuk menyimpan semua paket. Ini berarti bahwa setiap versi paket disimpan hanya sekali di disk, terlepas dari berapa banyak proyek yang menggunakannya.
-
Symlink: Alih-alih menyalin paket ke dalam direktori
node_modules
setiap proyek, PNPM membuat struktur direktori bersarang menggunakan symlink. Pendekatan ini secara signifikan mengurangi penggunaan ruang disk dan mempercepat waktu instalasi. -
Mode Ketat: PNPM menerapkan algoritma resolusi ketergantungan yang lebih ketat, yang membantu mencegah beberapa masalah yang terkait dengan struktur
node_modules
datar npm, seperti ketergantungan hantu.
Perbandingan dengan npm dan Yarn
Untuk lebih memahami posisi PNPM dalam ekosistem, mari kita bandingkan dengan npm dan Yarn:
-
Penggunaan Ruang Disk:
- PNPM: Menggunakan penyimpanan berbasis konten, menghemat ruang disk yang signifikan.
- npm dan Yarn: Membuat salinan terpisah dari setiap paket untuk setiap proyek.
-
Kecepatan Instalasi:
- PNPM: Umumnya lebih cepat, terutama untuk proyek dengan banyak ketergantungan.
- npm: Lebih lambat, terutama untuk proyek besar.
- Yarn: Lebih cepat dari npm, tetapi biasanya lebih lambat dari PNPM.
-
Resolusi Ketergantungan:
- PNPM: Menggunakan algoritma yang lebih ketat dan dapat diprediksi.
- npm dan Yarn: Menggunakan resolusi datar, yang dapat menyebabkan "ketergantungan hantu".
-
Dukungan Monorepo:
- PNPM: Dukungan bawaan yang efisien untuk monorepos.
- npm: Dukungan terbatas secara native.
- Yarn: Dukungan baik dengan Yarn Workspaces.
-
File Kunci:
- PNPM: Menggunakan
pnpm-lock.yaml
- npm: Menggunakan
package-lock.json
- Yarn: Menggunakan
yarn.lock
- PNPM: Menggunakan
-
Pangsa Pasar dan Komunitas:
- npm: Paling banyak digunakan, komunitas terbesar.
- Yarn: Alternatif yang mapan dengan basis pengguna yang besar.
- PNPM: Berkembang pesat, tetapi masih lebih kecil dibandingkan dengan npm dan Yarn.
Menginstal PNPM di Linux
Menginstal PNPM di Linux adalah proses yang sederhana. Ada beberapa metode yang tersedia, tergantung pada preferensi dan konfigurasi sistem Anda. Bagian ini akan memandu Anda melalui persyaratan sistem dan metode instalasi yang paling umum.
Persyaratan Sistem
Sebelum menginstal PNPM, pastikan sistem Linux Anda memenuhi persyaratan berikut:
- Node.js (versi 14 atau lebih baru disarankan)
- npm (biasanya disertakan dengan Node.js)
Anda dapat memeriksa versi Node.js dan npm Anda dengan menjalankan perintah berikut di terminal Anda:
node --version
npm --version
Jika Anda perlu memperbarui atau menginstal Node.js, Anda dapat melakukannya melalui manajer paket distribusi Anda atau dengan menggunakan manajer versi seperti nvm (Node Version Manager).
Metode Instalasi
Menggunakan curl (Direkomendasikan)
Cara yang paling sederhana dan direkomendasikan untuk menginstal PNPM di Linux adalah dengan menggunakan curl:
curl -fsSL https://get.pnpm.io/install.sh | sh -
Perintah ini mengunduh dan menjalankan skrip instalasi PNPM. Setelah instalasi, Anda mungkin perlu memulai ulang terminal Anda atau menjalankan source ~/.bashrc
(atau yang setara untuk shell Anda) untuk menggunakan PNPM.
Menggunakan npm
Jika Anda lebih suka, Anda juga dapat menginstal PNPM secara global menggunakan npm:
npm install -g pnpm
Metode ini berguna jika Anda sudah memiliki npm terinstal dan lebih suka mengelola PNPM melalui itu.
Menggunakan manajer paket distribusi Linux Anda
Beberapa distribusi Linux memiliki PNPM di repositori resmi mereka. Misalnya, di Arch Linux dan turunannya, Anda dapat menginstal PNPM menggunakan:
sudo pacman -S pnpm
Periksa repositori paket distribusi Anda untuk melihat apakah PNPM tersedia.
Memverifikasi Instalasi
Setelah instalasi, verifikasi bahwa PNPM terinstal dengan benar dengan memeriksa versinya:
pnpm --version
Ini harus menampilkan versi PNPM yang terinstal.
Memperbarui PNPM
Untuk memperbarui PNPM ke versi terbaru, Anda dapat menggunakan PNPM itu sendiri:
pnpm add -g pnpm
Atau, jika Anda menginstal melalui npm:
npm install -g pnpm@latest
Pemecahan Masalah
Jika Anda mengalami masalah selama instalasi:
- Pastikan Anda memiliki izin yang diperlukan untuk menginstal paket global.
- Periksa bahwa
PATH
Anda mencakup direktori tempat PNPM diinstal. - Jika menggunakan metode curl, pastikan sistem Anda memiliki curl terinstal.
Fitur Utama PNPM untuk Pengguna Linux
PNPM menawarkan beberapa fitur yang membuatnya sangat menarik bagi pengguna Linux. Fitur-fitur ini mengatasi titik nyeri umum dalam manajemen paket dan memberikan keuntungan signifikan dalam hal efisiensi, kinerja, dan organisasi proyek.
1. Efisiensi Ruang Disk
Salah satu fitur paling mencolok dari PNPM adalah penggunaan ruang disk yang sangat efisien, yang sangat berharga di lingkungan Linux:
- Penyimpanan Berbasis Konten: PNPM menyimpan semua paket dalam satu penyimpanan berbasis konten global. Ini berarti setiap versi paket disimpan hanya sekali di disk Anda, terlepas dari berapa banyak proyek yang menggunakannya.
- Hard Links: Alih-alih menyalin paket, PNPM menggunakan hard links untuk merujuk paket dari penyimpanan global. Ini secara signifikan mengurangi penggunaan disk, terutama bermanfaat untuk server Linux atau kontainer dengan penyimpanan terbatas.
- Perhitungan Penghematan: Anda dapat menggunakan perintah
pnpm store status
untuk melihat berapa banyak ruang disk yang Anda hemat dibandingkan dengan menggunakan pendekatannode_modules
tradisional.
2. Peningkatan Kinerja
PNPM menawarkan manfaat kinerja yang substansial, yang sangat terlihat pada sistem Linux:
- Instalasi Lebih Cepat: Karena mekanisme penyimpanannya yang unik, PNPM dapat menginstal dan memperbarui paket jauh lebih cepat daripada npm atau Yarn, terutama dalam proyek dengan banyak ketergantungan.
- Operasi Paralel: PNPM melakukan banyak operasi secara paralel, memanfaatkan sepenuhnya prosesor multi-core yang umum di server Linux.
- Pembaruan Efisien: Memperbarui paket lebih cepat karena PNPM hanya perlu memperbarui tautan daripada menyalin seluruh konten paket.
3. Dukungan Monorepo
PNPM memberikan dukungan bawaan yang sangat baik untuk monorepo, yang semakin populer di lingkungan pengembangan berbasis Linux berskala besar:
- Protokol Workspace: PNPM menggunakan protokol
workspace:
untuk mengelola ketergantungan antara paket dalam monorepo, memudahkan untuk bekerja dengan paket lokal. - Kontrol Hoisting: Tidak seperti npm, PNPM memberi Anda kontrol yang lebih rinci atas hoisting, membantu mencegah konflik ketergantungan dalam pengaturan monorepo yang kompleks.
- Penyaringan: PNPM menawarkan kemampuan penyaringan yang kuat untuk menjalankan perintah pada subset paket dalam monorepo, yang sangat berguna dalam pipeline CI/CD di server Linux.
4. Mode Ketat dan Resolusi Ketergantungan yang Lebih Baik
Mode ketat PNPM dan strategi resolusi ketergantungan sejalan dengan filosofi Linux tentang kejelasan dan keamanan:
- Pencegahan Ketergantungan Hantu: Mode ketat PNPM memastikan bahwa proyek Anda hanya dapat mengakses ketergantungan yang terdaftar dalam
package.json
-nya, mencegah penggunaan ketergantungan yang tidak dinyatakan. - Pohon Ketergantungan yang Dapat Diprediksi: PNPM menciptakan pohon ketergantungan yang lebih deterministik dan dapat diprediksi, yang penting untuk membangun yang dapat direproduksi dalam lingkungan CI/CD berbasis Linux.
5. Fitur Keamanan Bawaan
Keamanan adalah prioritas utama bagi banyak pengguna Linux, dan PNPM mencakup beberapa fitur yang meningkatkan keamanan:
- Permukaan Serangan yang Diminimalkan: Dengan menggunakan satu penyimpanan paket, PNPM mengurangi jumlah tempat di mana kode berbahaya dapat bersembunyi.
- Verifikasi Checksums: PNPM memverifikasi integritas paket selama instalasi, membantu mencegah serangan rantai pasokan.
- Izin Ketat: Saat digunakan di Linux, PNPM menghormati dan dapat menegakkan izin file dan direktori yang ketat, meningkatkan keamanan di lingkungan multi-pengguna.
6. Integrasi Mulus dengan Alat Linux
PNPM bekerja dengan baik dengan berbagai alat dan praktik pengembangan Linux:
- Penyelesaian Shell: PNPM menyediakan skrip penyelesaian shell untuk bash dan zsh, shell umum di lingkungan Linux.
- Ramah Docker: Efisiensi ruang dan kinerja PNPM menjadikannya pilihan yang sangat baik untuk kontainer Docker, yang banyak digunakan dalam penyebaran berbasis Linux.
- Kompatibilitas CI/CD: PNPM terintegrasi dengan mulus dengan alat CI/CD populer yang digunakan di lingkungan Linux, seperti Jenkins, GitLab CI, dan GitHub Actions.
Fitur-fitur ini menjadikan PNPM alat yang kuat bagi pengguna Linux, menawarkan perbaikan dalam efisiensi, kinerja, dan keamanan yang sangat berharga dalam lingkungan pengembangan Linux.
Menggunakan PNPM di Linux
Setelah Anda menginstal PNPM di sistem Linux Anda, Anda dapat mulai menggunakannya untuk mengelola proyek JavaScript dan Node.js Anda. Bagian ini akan mencakup perintah dasar, cara mengelola ketergantungan, dan cara membuat serta menjalankan skrip dengan PNPM.
Perintah Dasar
Perintah PNPM mirip dengan npm, sehingga mudah bagi pengembang yang sudah familiar dengan npm untuk beralih. Berikut adalah beberapa perintah penting:
-
Inisialisasi proyek baru:
pnpm init
Ini akan membuat file
package.json
baru di direktori Anda saat ini. -
Instal semua ketergantungan:
pnpm install
Perintah ini menginstal semua ketergantungan yang terdaftar dalam file
package.json
Anda. -
Menambahkan ketergantungan baru:
pnpm add <nama-paket>
Untuk menambahkan ketergantungan pengembangan, gunakan flag
-D
:pnpm add -D <nama-paket>
-
Menghapus ketergantungan:
pnpm remove <nama-paket>
-
Memperbarui ketergantungan:
pnpm update
Untuk memperbarui paket tertentu:
pnpm update <nama-paket>
-
Menjalankan skrip:
pnpm run <nama-skrip>
Mengelola Ketergantungan
PNPM menawarkan beberapa fitur lanjutan untuk mengelola ketergantungan:
-
Menginstal ketergantungan peer: PNPM tidak menginstal ketergantungan peer secara default. Untuk mengubah perilaku ini, Anda dapat menggunakan:
pnpm install --shamefully-hoist
-
Menyaring instalasi dalam monorepos: Dalam monorepo, Anda dapat menginstal ketergantungan untuk paket tertentu:
pnpm --filter <nama-paket> install
-
Mengimpor proyek: Untuk mengonversi proyek dari npm atau Yarn ke PNPM, gunakan:
pnpm import
-
Melihat grafik ketergantungan:
pnpm list
Untuk representasi visual:
pnpm list --graph
Membuat dan Menjalankan Skrip
Seperti npm, PNPM memungkinkan Anda untuk mendefinisikan dan menjalankan skrip dalam file package.json
Anda:
-
Mendefinisikan skrip: Dalam
package.json
Anda, tambahkan bagian "scripts":{ "scripts": { "start": "node index.js", "test": "jest", "build": "webpack" } }
-
Menjalankan skrip:
pnpm run start pnpm run test pnpm run build
Untuk
start
,test
, danbuild
, Anda dapat menggunakan pintasan:pnpm start pnpm test pnpm build
-
Menjalankan beberapa skrip: PNPM memungkinkan menjalankan beberapa skrip secara berurutan:
pnpm run build && pnpm run test
Bekerja dengan Penyimpanan
Penyimpanan unik PNPM adalah salah satu fitur kuncinya. Berikut adalah beberapa perintah untuk mengelolanya:
-
Melihat status penyimpanan:
pnpm store status
-
Memangkas penyimpanan (menghapus paket yang tidak terpakai):
pnpm store prune
-
Memverifikasi integritas penyimpanan:
pnpm store verify
Variabel Lingkungan
PNPM menghormati banyak variabel lingkungan yang sama seperti npm. Beberapa yang berguna untuk pengguna Linux termasuk:
PNPM_HOME
: Mengatur direktori tempat PNPM menyimpan paket global dan binarinya sendiri.NPM_CONFIG_PREFIX
: PNPM menggunakan ini untuk menentukan di mana menginstal paket global jikaPNPM_HOME
tidak disetel.
Praktik Terbaik untuk PNPM di Linux
Untuk memaksimalkan manfaat menggunakan PNPM di Linux, penting untuk mengikuti praktik terbaik tertentu. Bagian ini mencakup pertimbangan keamanan, teknik optimasi kinerja, dan tips pemecahan masalah untuk masalah umum.
Pertimbangan Keamanan
-
Jaga PNPM Tetap Terbaru: Secara teratur perbarui PNPM ke versi terbaru untuk memastikan Anda memiliki patch keamanan terbaru:
pnpm add -g pnpm
-
Gunakan File Kunci: Selalu komit file
pnpm-lock.yaml
Anda ke kontrol versi. Ini memastikan instalasi yang konsisten di berbagai lingkungan:git add pnpm-lock.yaml git commit -m "Perbarui ketergantungan"
-
Audit Ketergantungan: Secara teratur audit ketergantungan Anda untuk kerentanan:
pnpm audit
-
Gunakan Mode Ketat: Aktifkan mode ketat dalam file
.npmrc
Anda untuk mencegah penggunaan ketergantungan yang tidak dinyatakan:node-linker=hoisted strict-peer-dependencies=true
-
Manfaatkan Fitur Keamanan Bawaan: Manfaatkan fitur keamanan bawaan PNPM, seperti pencegahan eksekusi skrip sembarangan selama instalasi paket.
Mengoptimalkan Kinerja
-
Manfaatkan Jalur Penyimpanan: Atur jalur penyimpanan kustom untuk berbagi paket di seluruh proyek:
pnpm config set store-dir ~/.pnpm-store
-
Gunakan Workspace Bersama: Untuk monorepos, gunakan workspace PNPM untuk mengelola beberapa paket secara efisien:
# pnpm-workspace.yaml packages: - 'packages/*'
-
Optimalkan Pipeline CI/CD: Gunakan flag
--frozen-lockfile
PNPM di lingkungan CI untuk memastikan build yang lebih cepat dan lebih konsisten:pnpm install --frozen-lockfile
-
Manfaatkan Eksekusi Paralel: Manfaatkan kemampuan PNPM untuk menjalankan skrip secara paralel untuk monorepos:
pnpm -r --parallel run build
-
Pemangkasan Secara Teratur: Secara teratur pangkas penyimpanan Anda untuk menghapus paket yang tidak terpakai:
pnpm store prune
Pemecahan Masalah Masalah Umum
-
Masalah Izin: Jika mengalami kesalahan izin, pastikan pengguna Anda memiliki hak yang diperlukan:
sudo chown -R $(whoami) ~/.pnpm-store
-
Konflik Ketergantungan: Jika Anda menghadapi konflik ketergantungan, coba gunakan flag
--force
dengan hati-hati:pnpm install --force
-
Masalah Jalur: Pastikan PNPM ada di PATH Anda. Tambahkan ini ke
.bashrc
atau.zshrc
Anda:export PATH="$HOME/.local/share/pnpm:$PATH"
-
Ketidakcocokan dengan Versi Node: Jika paket tidak kompatibel dengan versi Node Anda, gunakan
pnpm env
untuk mengelola versi Node:pnpm env use --global lts
-
Masalah Ruang Disk: Jika kehabisan ruang disk, bersihkan penyimpanan PNPM:
pnpm store prune
Praktik Terbaik untuk Monorepos
-
Gunakan Protokol Workspace: Dalam
package.json
Anda, rujuk paket lokal menggunakan protokol workspace:{ "dependencies": { "my-local-package": "workspace:*" } }
-
Perintah yang Disaring: Gunakan fitur penyaringan PNPM untuk menjalankan perintah pada paket tertentu:
pnpm --filter ./packages/* run test
-
Konfigurasi Bersama: Manfaatkan kemampuan PNPM untuk mengangkat konfigurasi bersama ke akar monorepo Anda.
Dokumentasi dan Reproduksibilitas
-
Dokumentasikan Penggunaan PNPM: Sertakan bagian dalam README Anda tentang penggunaan PNPM untuk proyek Anda:
Pengembangan
Proyek ini menggunakan PNPM. Untuk menginstal ketergantungan:
pnpm install
-
Gunakan .npmrc: Buat file
.npmrc
di root proyek Anda untuk memastikan pengaturan PNPM yang konsisten di seluruh tim Anda:shamefully-hoist=true strict-peer-dependencies=false
-
Integrasi Kontrol Versi: Konfigurasikan kontrol versi Anda untuk mengabaikan direktori
.pnpm-store
tetapi menyertakanpnpm-lock.yaml
.
Pertanyaan yang Sering Diajukan (FAQ)
1. Apa perbedaan utama antara PNPM dan npm?
PNPM menggunakan penyimpanan berbasis konten yang unik untuk paket, yang secara signifikan mengurangi penggunaan ruang disk dan meningkatkan kecepatan instalasi. Tidak seperti npm, yang membuat struktur node_modules
datar, PNPM menciptakan struktur bersarang yang lebih akurat mencerminkan pohon ketergantungan.
2. Bisakah saya menggunakan PNPM dengan proyek npm atau Yarn yang ada di Linux?
Ya, Anda bisa. PNPM dapat bekerja dengan file package.json
yang ada. Untuk migrasi, Anda cukup menjalankan pnpm import
di direktori proyek Anda, yang akan membuat file pnpm-lock.yaml
berdasarkan file kunci yang ada.
3. Apakah PNPM bekerja dengan semua paket npm?
Dalam kebanyakan kasus, ya. PNPM dirancang untuk kompatibel dengan ekosistem npm. Namun, beberapa paket yang bergantung pada struktur datar node_modules
npm mungkin mengalami masalah. Ini biasanya dapat diselesaikan dengan menggunakan opsi shamefully-hoist
PNPM.
4. Bagaimana kinerja PNPM di lingkungan CI/CD di Linux?
PNPM sering kali mengungguli npm dan Yarn di lingkungan CI/CD, terutama untuk proyek dengan banyak ketergantungan. Mekanisme caching yang efisien dan waktu instalasi yang cepat dapat secara signifikan mengurangi waktu build di pipeline CI/CD berbasis Linux.
5. Apakah PNPM aman digunakan di lingkungan produksi Linux?
Ya, PNPM dirancang dengan keamanan dalam pikiran. Ini mencakup fitur seperti mode ketat untuk mencegah penggunaan ketergantungan yang tidak dinyatakan, dan menghormati kebijakan keamanan npm. Selalu jaga PNPM tetap diperbarui untuk memastikan Anda memiliki patch keamanan terbaru.
6. Bagaimana saya dapat menginstal paket secara global dengan PNPM di Linux?
Untuk menginstal paket secara global dengan PNPM, gunakan flag -g
:
pnpm add -g <nama-paket>
Pastikan direktori PNPM_HOME
Anda ada di PATH Anda untuk menggunakan paket yang diinstal secara global.
7. Bisakah PNPM membantu mengelola versi Node.js yang berbeda di Linux?
Meskipun PNPM sendiri tidak mengelola versi Node.js, ia bekerja dengan baik dengan manajer versi seperti nvm atau n. Selain itu, PNPM menawarkan perintah pnpm env
untuk membantu menggunakan versi Node.js yang berbeda untuk proyek yang berbeda.
8. Bagaimana PNPM menangani ketergantungan peer di Linux?
Secara default, PNPM tidak secara otomatis menginstal ketergantungan peer. Anda dapat mengubah perilaku ini dengan mengatur auto-install-peers=true
dalam file .npmrc
Anda, atau dengan menggunakan flag --shamefully-hoist
selama instalasi.
9. Apakah mungkin menggunakan PNPM dalam kontainer Docker di Linux?
Ya, PNPM bekerja dengan baik dalam kontainer Docker. Faktanya, efisiensi ruangnya bisa sangat bermanfaat dalam lingkungan terkontainer. Pastikan untuk menyertakan instalasi PNPM dalam Dockerfile Anda.
10. Bagaimana saya dapat memecahkan kesalahan "Modul tidak ditemukan" dengan PNPM di Linux?
Kesalahan ini sering terjadi karena resolusi ketergantungan PNPM yang lebih ketat. Cobalah menggunakan flag --shamefully-hoist
selama instalasi, atau tambahkan paket yang bermasalah ke ketergantungan proyek Anda. Jika masalah berlanjut, periksa apakah paket tersebut kompatibel dengan struktur node_modules
bersarang PNPM.