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
Generator Konfigurasi Webpack
Buat webpack.config.js untuk webpack 5 bagi JavaScript biasa, React, atau Vue: TypeScript, Babel, CSS atau Sass, gambar, HtmlWebpackPlugin, server pengembangan, dan baris npm install.
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.
Dekoder Protocol Buffers
Dekode byte wire-format Protobuf secara lokal dari hex, Base64, Base64URL, teks, atau file; periksa kandidat field yang tepat dan ekspor laporan privat.
Validator OpenAPI
Tempel dokumen OpenAPI atau Swagger dalam JSON atau YAML dan periksa struktur intinya: bidang versi, objek info, dan paths, dengan galat dan peringatan yang jelas.
Validator XSD
Validasi dokumen XML terhadap skema XSD dan laporkan ketidakcocokan elemen dan tipe dengan nomor baris persis.
Alat ini tersedia dalam bahasa lain
- Package.json-generator [NL]
- Generador de Package.json [ES]
- Package.json 생성기 [KO]
- Générateur de package.json [FR]
- package.json-Generator [DE]
- ตัวสร้าง package.json [TH]
- Gerador de Package.json [PT]
- Generator package.json [PL]
- Trình tạo package.json [VI]
- مولد package.json [AR]
- Package.json-generator [SV]
- PackageJsonジェネレータ [JA]
- Package.json Generator [EN]
- Generatore di Package.json [IT]
- Генератор package.json [RU]
- Package.json Oluşturucu [TR]
- package.json 生成器 [ZH]