Generator package.json
Alih-alih menjalankan npm init dan menjawab sebelas pertanyaan, isi formulir saja untuk mendapatkan file package.json yang rapi dan terstruktur dengan baik. Generator ini mencakup semua bidang wajib (nama, versi), bidang yang umum digunakan (script, ketergantungan, devDependencies, engine), serta informasi tambahan penting (repository, bug, kata kunci, lisensi) yang diperlukan agar sebuah paket dapat ditemukan dan dipublikasikan.
Cara Membuat File package.json Anda
-
1
Masukkan nama dan versi
Nama harus mengikuti aturan npm: huruf kecil, aman untuk digunakan dalam URL, dan tidak melebihi 214 karakter. Versi menggunakan format semver (misalnya 0.1.0).
-
2
Pilih jenis modul
CommonJS (bawaan) atau ESM melalui tipe: "module". Berlaku untuk proyek Node.js versi 14 ke atas.
-
3
Tambahkan skrip
Mulai, bangun, uji, lint, semua perintah dijalankan menggunakan `npm run <name>`.
-
4
Daftar Ketergantungan
Paket runtime terdapat dalam ketergantungan (dependencies), sedangkan alat bantu pengembangan tersedia dalam devDependencies.
-
5
Atur metadata
Deskripsi, penulis, lisensi, URL repositori, kata kunci.
-
6
Salin hasil keluaran
Tempelkan ke dalam file package.json baru di lokasi akar proyek.
Bidang-bidang yang paling penting
| Bidang | Wajib? | Catatan |
|---|---|---|
name |
Ya | Huruf kecil, panjang 1–214 karakter, aman untuk URL |
version |
Ya | Semver (major.minor.patch) |
type |
Tidak | “module” untuk ESM; dihilangkan untuk CommonJS |
main |
Direkomendasikan | Titik masuk untuk CommonJS (index.js) |
exports |
Direkomendasikan | Peta ekspor modern untuk sistem CJS/ESM ganda |
scripts |
Sangat direkomendasikan | Perintah npm run <name> |
dependencies |
Sesuai kebutuhan | Paket runtime |
devDependencies |
Sesuai kebutuhan | Alat pembangunan, peluncur pengujian, alat pemeriksa kode (linters) |
engines |
Sangat diinginkan | Rentang versi node yang wajib |
license |
Ya untuk publikasi | Identifikasi SPDX seperti MIT, Apache-2.0 |
Daftar Panduan Cepat Semver
1.0.0, major.minor.patch^1.0.0, kompatibel dengan versi 1.x.x (>=1.0.0, <2.0.0)~1.0.0, hanya pembaruan patch (>=1.0.0, <1.1.0)>=1.0.0 <2.0.0, rentang eksplisit1.0.0-beta.1, prereleaselatest, tag npm, bukan versi
Nilai default saat menjalankan npm install package adalah ^, yang memungkinkan peningkatan tanpa terputus.
Skrip standar yang sangat berguna
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "tsc",
"test": "vitest",
"lint": "eslint .",
"format": "prettier --write ."
}
}
Kesalahan dalam penamaan
- Tanpa huruf kapital.
MyPackagegagal saatnpm install. - Tanpa spasi. Gunakan tanda hubung:
my-package. - Nama ber-scope dimulai dengan
@org/untuk organisasi GitHub atau npm:@acme/utils. - Kata-kata yang dicadangkan.
node_modules,favicon.ico,core, danexpresstidak dapat digunakan sebagai nama paket.
Opsi lisensi
Pilih pengenal SPDX yang diakui:
- MIT, pilihan umum yang paling fleksibel dan terbuka.
- Apache-2.0, bersifat permissive dengan pemberian paten.
- ISC, lisensi sangat singkat mirip MIT, yang menjadi standar bawaan di npm.
- GPL-3.0 atau versi lebih baru – jenis lisensi yang bersifat “copyleft”.
- UNLICENSED, paket pribadi, tidak ditujukan untuk distribusi.
String lisensi yang salah atau ambigu akan memicu peringatan saat proses publikasi di npm.
Pertanyaan yang Sering Diajukan
Ketergantungan (dependencies) diinstal ketika seseorang menjalankan npm install dalam proyek yang menggunakan paket Anda. Ketergantungan pengembangan (devDependencies) hanya diinstal dalam lingkungan pengembangan khusus paket tersebut. Paket runtime dimasukkan ke dalam kategori dependencies, sedangkan alat-alat pengujian dan pembangunan dimasukkan ke dalam kategori devDependencies.
Ya, terutama untuk aplikasi. Lockfile menentukan versi yang pasti dan memastikan proses instalasi dapat diulang secara konsisten di berbagai mesin maupun dalam skenario CI. Untuk paket pustaka yang diterbitkan di npm, penggunaan lockfile bersifat opsional; setiap pengguna akan mendapatkan lockfile sendiri.
Hanya jika Anda menginginkan paket menggunakan format ESM (sintaks impor/ekspor) secara default; jika tidak, file .js akan diperlakukan sebagai CommonJS. Anda juga dapat menggunakan ekstensi .mjs untuk file ESM atau .cjs untuk file CommonJS, terlepas dari jenisnya.
Versi Node yang digunakan untuk menguji kode Anda. Pilihan umum saat ini adalah "engines": {"node": ">=18"}. Ini merupakan peringatan, bukan kesalahan; namun alat pengujian tetap memperhatikannya dan pengguna dapat menempelkannya dengan benar.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Generator EditorConfig
Buat file .editorconfig dengan gaya dan ukuran indentasi, akhir baris, charset, dan aturan spasi Anda untuk format yang konsisten di berbagai IDE dan editor.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
Alat ini tersedia dalam bahasa lain
- Générateur de package.json [FR]
- Package.json-generator [SV]
- Package.json 생성기 [KO]
- مولد package.json [AR]
- PackageJsonジェネレータ [JA]
- ตัวสร้าง package.json [TH]
- Package.json-generator [NL]
- Generator package.json [PL]
- package.json-Generator [DE]
- Trình tạo package.json [VI]
- Generador de Package.json [ES]
- Gerador de Package.json [PT]
- Package.json Oluşturucu [TR]
- package.json 生成器 [ZH]
- Package.json Generator [EN]
- Generatore di Package.json [IT]
- Генератор package.json [RU]