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

Global Package Store

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. 1

    Install

  2. 2

    Store atau Link

  3. 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

Kompatibilitas & Catatan

FAQ

Berhenti menyimpan node_modules berkali-kali.