v0.1.0 · Node.js ≥ 18 · MIT · Windows-first
Satu Store untuk Semua Project Node.js Anda.
- Hemat disk
- Hemat waktu
- Tetap kompatibel
Mulai Cepat
1. Jalankan NxNode dari source
$ cd D:\Framework\CLI\nxnode
$ npm install
$ node bin/nxnode.js --help
$ npm link
$ nxnode --version
2. Buat project & pasang package
$ nxnode project create my-project
$ nxnode install express
$ nxnode install lodash
$ nxnode list
$ nxnode install
Masalahnya
Project A1 Project A2
└── node_modules └── node_modules
├── express ├── express <-- duplikat
├── axios ├── axios <-- duplikat
└── ws └── sharp
Solusi NxNode
Project A1 +-+
Project A2 +-+--> D:\NxNodeStore
Project A3 +-+ (satu salinan express@5.1.0)
Fitur Utama
Dedup lintas project
Multi-versi berdampingan
Transitive dependency
Integrity SHA-512
Lock file reproducible
Scoped package
Empat mode linking
Garbage collection aman
Bisa dipakai sebagai library
Cara Kerja
-
1
Install
-
2
Store atau Link
-
3
Link
nxnode install express
|
v
Baca / Read package.json
|
v
Resolve version
|
v
Cek / Check Global Package Store
/ \
ADA/EXISTS TIDAK/MISSING
| |
v v
Link Download
|
v
Verify + Store
|
v
Link
Demo Terminal
Install pertama — belum ada di store
$ nxnode install express
[NxNode] Resolving express...
[NxNode] Required version: 5.1.0
[NxNode] Added express@^5.1.0 in package.json
[NxNode] Building dependency tree...
[NxNode] Found 57 packages
[NxNode] Downloading express@5.1.0...
[NxNode] Linking transitive dependencies inside store...
[NxNode] Linking packages...
✓ express@5.1.0 installed with 57 packages
Install kedua — sudah ada, tanpa download ulang
$ nxnode install express
[NxNode] Resolving express...
[NxNode] Required version: 5.1.0
[NxNode] express@5.1.0 found in store
[NxNode] Linking existing package...
✓ express@5.1.0 linked
Referensi Perintah
| Perintah | Fungsi |
|---|---|
nxnode install | |
nxnode install <package> | |
nxnode install <package>@<version> | |
nxnode remove <package> | |
nxnode update <package> | |
nxnode link | |
nxnode unlink | |
nxnode list | |
nxnode list --global | |
nxnode store | |
nxnode store path | |
nxnode store clean | |
nxnode store projects | |
nxnode config | |
nxnode config <key> <value> | |
nxnode project create <name> | |
nxnode doctor | |
nxnode --version | |
nxnode --help |
Mode Linking
| Mode | Keterangan |
|---|---|
junction | |
symlink | |
hardlink | |
copy |
express@^5.1.0 [linked (junction) -> D:\NxNodeStore\packages\express\5.1.0\package]
lodash@^4.17.0 [copied -> D:\NxNodeStore\packages\lodash\4.17.0\package]
Konfigurasi
nxnode config storePath E:\MyPackages
nxnode config linkMode copy
{
"storePath": "D:\\NxNodeStore",
"linkMode": "junction"
}
Integrasi (NxDOM)
Dipakai sebagai library
// Node CommonJS — panggil langsung tanpa spawn CLI
const nxnode = require('nxnode');
await nxnode.install('express@^5.1.0', projectRoot, onProgress);
await nxnode.installAll(projectRoot); // semua dependency di package.json
console.log(nxnode.store.getStorePath()); // lokasi Global Store