7 poin oleh xguru 2024-04-26 | 3 komentar | Bagikan ke WhatsApp

JSR - registri baru untuk berbagi paket JavaScript

  • Dalam beberapa tahun terakhir, pengelola paket baru seperti yarn dan pnpm telah muncul dan memperbaiki cara paket diunduh
  • Namun, registri paket npm, inti dari ekosistem JavaScript, hampir tidak berevolusi
    • Pembaruan penting terakhir adalah tab "files" yang ditambahkan beberapa tahun lalu
  • Paradoksnya, bahasa JavaScript yang dikenal aktif berevolusi justru tampak terhambat oleh model distribusi yang ketinggalan zaman

Masalah pada sistem modul JavaScript

  • Saat Node dibuat, belum ada sistem modul standar untuk JavaScript, sehingga registri npm dan Node mengadopsi sistem CommonJS(require) yang secara mendasar memiliki cacat sebagai standar bawaan
    • Sistem ini tidak dapat berjalan di browser
  • Hampir 10 tahun lalu, pada 2015, bahasa ini sendiri mengadopsi sintaks ES module(import)
  • Saat ini sebagian besar JavaScript ditulis menggunakan ES module, tetapi jalur untuk mendistribusikan modul-modul ini masih rumit
    • Terutama jika TypeScript ikut terlibat
  • Kesenjangan yang jelas dalam ekosistem inilah yang melahirkan JSR
    • JSR bukan pengelola paket lain, melainkan registri transformatif yang dirancang untuk merevolusi cara berbagi JavaScript dan TypeScript di runtime sisi server, browser, dan berbagai alat

Fitur dan manfaat JSR

  • JSR secara mendasar meningkatkan proses distribusi kode dengan menyederhanakan kompleksitas yang telah lama membebani para pengembang
  • Sebagai solusi ESM-only dan TypeScript-first, JSR menghilangkan penyesuaian yang merepotkan pada konfigurasi package.json dan opsi kompiler tsconfig yang seperti labirin
  • Melalui sistem penilaian paket, JSR mendorong praktik terbaik dalam distribusi kode
    • Mirip dengan pub.dev di komunitas Dart, paket yang menyertakan dokumentasi JSDoc komprehensif untuk setiap simbol yang diekspor akan mendapat skor lebih tinggi
  • Seperti yang terlihat pada ekosistem pemrograman modern lain seperti Go dan Rust, JSR menyediakan fitur pembuatan dokumentasi otomatis secara bawaan

Hubungannya dengan npm

  • JSR adalah registri, bukan klien lain untuk registri npm
    • Namun, ini tidak berarti Anda harus meninggalkan semua yang ada di npm atau beralih ke ekosistem modul JavaScript yang terpisah
  • JSR dirancang untuk melengkapi registri npm, bukan untuk menggantikan npm
    • Paket JSR dapat bergantung pada paket npm (misalnya: referensi paket ini)
  • Selain itu, paket JSR dapat digunakan dalam perangkat lunak lama yang berpusat pada npm
    • Karena JSR sendiri berfungsi sebagai registri npm yang mendistribusikan tarball kompatibel npm (dapat diakses di npm.jsr.io)
    • Ini memungkinkan paket JSR disertakan ke dalam perangkat lunak apa pun yang menggunakan npm, yarn, atau pnpm, serta diintegrasikan dengan registri privat
  • Tarball npm yang didistribusikan oleh JSR telah dioptimalkan

Mengutamakan keamanan

  • Di Deno, keamanan ditempatkan sebagai prioritas utama dalam pengembangan JavaScript
  • Tidak ada registri yang dapat mengawasi seluruh kode yang dipublikasikan secara menyeluruh, tetapi JSR memberikan transparansi terhadap penerbit dan melindungi proses penerbitan
  • Dengan mengintegrasikan GitHub Actions dan token OIDC, JSR menggunakan supply chain levels untuk artefak perangkat lunak guna membuat bukti asal yang canggih dan dapat diverifikasi, lalu menyimpannya di Sigstore
    • Ini tidak hanya menjamin keaslian kode, tetapi juga membangun kepercayaan dan akuntabilitas atas apa yang diimplementasikan pengembang

Pusat pengembangan JavaScript

  • JavaScript adalah bahasa umum bagi banyak programmer, bersifat universal dan mudah diakses
  • Bahasa ini membutuhkan hub pusat tempat para pengembang dapat berbagi karya mereka tanpa kompleksitas yang tidak perlu, semacam alun-alun kota
  • Kami percaya JavaScript akan tetap menjadi pusat pengembangan perangkat lunak selama bertahun-tahun ke depan, dan JSR bertujuan mendukung relevansi yang berkelanjutan ini
  • JSR bukan sekadar alat lain dalam ekosistem, melainkan mewakili perubahan mendasar dalam cara kita memandang distribusi JavaScript dan TypeScript

3 komentar

 
yangeok 2024-04-30

Sepertinya jsr bisa diunduh dari npm deh,, wkwk

 
zzzz2222 2024-04-26

Semoga php hancur

 
semjei 2024-04-29

Kenapa di artikel JS malah bawa-bawa PHP?? Dari sudut pandang orang yang sedang mengerjakan proyek PHP, rasanya agak tersinggung.