Apa tepatnya yang harus saya masukkan .npmignore
?
Tes? Stuff suka .travis.yml
, .jshintrc
? Apa saja yang tidak diperlukan saat menjalankan modul (kecuali readme)?
Saya tidak dapat menemukan panduan tentang ini.
Apa tepatnya yang harus saya masukkan .npmignore
?
Tes? Stuff suka .travis.yml
, .jshintrc
? Apa saja yang tidak diperlukan saat menjalankan modul (kecuali readme)?
Saya tidak dapat menemukan panduan tentang ini.
.npmignore
atau "files"
( docs.npmjs.com/files/package.json#files ).
Jawaban:
Seperti yang mungkin Anda temukan, NPM tidak benar-benar menyatakan secara spesifik apa yang harus dimasukkan ke sana, melainkan mereka memiliki daftar file yang diabaikan-oleh-default . Banyak orang bahkan tidak menggunakannya karena semua yang ada di Anda .gitignore
diabaikan npm
secara default jika .npmignore
tidak ada. Selain itu, banyak file telah diabaikan secara default terlepas dari pengaturannya dan beberapa file selalu dikecualikan agar tidak diabaikan, seperti yang dijelaskan pada tautan di atas.
Tidak banyak yang resmi tentang apa yang harus selalu ada karena pada dasarnya ini adalah bagian dari .gitignore
, tetapi dari apa yang saya kumpulkan dari menggunakan node selama 5 tahun, inilah yang saya dapatkan.
Catatan: Yang saya maksud dengan produksi adalah kapan saja modul Anda digunakan oleh seseorang dan tidak untuk dikembangkan pada modul itu sendiri.
.coffee
file dalam paket Anda tetapi tetap melacaknya di repositori git Anda.node-gyp
mungkin memiliki file objek yang dihasilkan selama build yang tidak perlu dimasukkan ke dalam paket..gitignore
. Anda harus menempatkan hal-hal ini di dalam sini jika Anda sudah menggunakan .npmignore
file karena menimpa .gitignore
dari sudut pandang npm..travis.yml
tidak diperlukan untuk menggunakan, menguji, atau melihat kode.CNAME
file atau placeholder index.html
jika Anda menggunakan modul Anda berfungsi ganda sebagai gh-pages
repositori juga.npm install
, saya seharusnya hanya mengandalkan npm dan tidak ada sumber eksternal lainnya.Pada dasarnya, Anda harus pernah menggunakannya jika ada sesuatu yang ingin Anda simpan dari paket npm Anda tetapi tidak keluar dari repositori npm Anda. Ini bukan daftar item yang panjang, tetapi npm lebih suka membangun fungsionalitas daripada membuat orang terjebak dengan objek yang tidak relevan dalam paket mereka.
Saya setuju dengan jawaban singkat dan sintetik lante dan jawaban besar SamT :
Kontribusi saya untuk jawaban tersebut:
.npmignore adalah cara daftar hitam untuk mencapai pemilihan file paket. Tetapi dengan cara yang lebih praktis, Anda dapat memasukkan file ke dalam daftar putih yang perlu Anda sertakan dalam paket Anda menggunakan kolom files di package.json Anda:
{
"files": [
"lib/",
"index.js"
]
}
Saya pikir itu lebih sederhana, bukti masa depan dan memiliki semantik yang lebih baik;)
npm test
di semua node_modules dapat memberi Anda petunjuk jika ada sesuatu yang berfungsi berbeda di lingkungan tertentu.
.npmignore
. files: ["lib", "!lib/**/*.test.js"]
. :)
Hanya untuk memperjelas, kapan pun seseorang melakukannya npm install your-library
, npm akan mengunduh semua file sumber yang disertakan dalam repo, kecuali file yang Anda sertakan di .npmignore
.
Ketahuilah bahwa orang yang menginstal perpustakaan Anda hanya membutuhkan perpustakaan Anda yang berjalan, hal lain tidak diperlukan.
Misalnya, ketika seseorang menginstal perpustakaan, mungkin dia tidak peduli dengan Anda .travis.yml
atau .jshintrc
file Anda , atau bahkan beberapa gambar, file Grunt, dokumentasi, dll.
.npmignore
dapat membuat paket npm Anda memiliki lebih sedikit file, dan lebih cepat diunduh
.npmignore
tidak secara langsung memengaruhi apa yang diunduh , itu memengaruhi apa yang masuk ke paket Anda ketika Anda menerbitkan dan mengunggah. Ini secara tidak langsung membuat file yang lebih kecil untuk diunduh.
Jangan sertakan tes Anda. Seringkali tes seperti 5x ukuran basis kode sebenarnya. Selama pengujian Anda ada di Github, dll, itu cukup bagus.
Tetapi yang mutlak harus Anda lakukan adalah menguji paket NPM Anda dalam format yang dipublikasikan . Buat beberapa pengujian asap yang berada dalam basis kode yang sebenarnya, tetapi bukan bagian dari rangkaian pengujian.
Anda dapat membaca tentang menguji paket Anda setelah melakukan tarball, di sini: https://github.com/ORESoftware/r2g
Bagaimana cara menguji hasil `npm publish`, tanpa benar-benar mempublikasikan ke NPM?
npm install yourlibrary
, misalnya.travis.yml
dan.jshintrc