Tam olarak ne koymalıyım .npmignore
?
Testler mi? Stuff gibi .travis.yml
, .jshintrc
? Modülü çalıştırırken gerekli olmayan herhangi bir şey (benioku dışında)?
Bu konuda herhangi bir yol gösterici bulamıyorum.
Tam olarak ne koymalıyım .npmignore
?
Testler mi? Stuff gibi .travis.yml
, .jshintrc
? Modülü çalıştırırken gerekli olmayan herhangi bir şey (benioku dışında)?
Bu konuda herhangi bir yol gösterici bulamıyorum.
.npmignore
veya "files"
( docs.npmjs.com/files/package.json#files ) otomatik olarak eklenir .
Yanıtlar:
Muhtemelen bulduğunuz gibi, NPM gerçekten oraya ne girmesi gerektiğini gerçekten belirtmiyor, bunun yerine varsayılan olarak göz ardı edilen dosyaların bir listesine sahipler . Çoğu insan bunu kullanmaz, çünkü sizdeki her şey mevcut değilse varsayılan .gitignore
olarak göz ardı edilir . Ek olarak, birçok dosya, ayarlardan bağımsız olarak varsayılan olarak zaten yok sayılır ve yukarıdaki bağlantıda belirtildiği gibi bazı dosyalar her zaman göz ardı edilmez.npm
.npmignore
Neyin her zaman orada olması gerektiğine dair çok fazla resmi yok çünkü bu temelde bir alt kümesidir .gitignore
, ancak 5-ish yıl boyunca düğümü kullanarak topladığım şeyden, işte ortaya çıkardığım şey.
Not: Üretim derken, modülünüzün birileri tarafından kullanıldığı ve modül üzerinde geliştirilmediği herhangi bir zamanı kastediyorum.
.coffee
dosyaları paketinize dahil etmeyebilir, ancak bunları git deponuzda izlemeye devam edebilirsiniz.node-gyp
, hiçbir zaman pakete girmemesi gereken bir derleme sırasında oluşturulan nesne dosyalarına sahip olabilir..gitignore
zaten girmeli . Npm'nin bakış açısından .npmignore
geçersiz kılan bir dosya kullanıyorsanız, bunları buraya yerleştirmelisiniz .gitignore
..travis.yml
Kodu kullanmak, test etmek veya görüntülemek için gerekli olmayan şeyler .CNAME
dosya veya yer tutucularla doldurmanıza kesinlikle gerek yoktur .index.html
gh-pages
npm install
, yalnızca npm'ye güvenmemeli ve başka harici kaynaklara güvenmemeliyim.Temel olarak, npm paketinizin dışında tutmak, ancak npm deponuzun dışında tutmak istediğiniz bir şey varsa onu kullanmalısınız. Uzun bir öğe listesi değil, ancak npm, insanların paketlerinde alakasız nesnelere takılıp kalması yerine işlevselliği geliştirmeyi tercih ediyor.
Ben katılıyorum Lante en kısa ve sentetik cevap ve Samt en büyük cevap :
Bu cevaplara katkım:
.npmignore , paket dosyası seçimini gerçekleştirmenin kara liste yoludur. Ancak daha pratik bir şekilde, paketinize eklemeniz gereken dosyaları , package.json dosyanızdaki dosyalar alanını kullanarak beyaz listeye ekleyebilirsiniz :
{
"files": [
"lib/",
"index.js"
]
}
Bence bu daha basit, geleceğe yönelik kanıt ve daha iyi anlambilim;)
npm test
tüm node_modules'de özyinelemeli yapmak , belirli bir ortamda bir şey farklı çalışıyorsa size bir ipucu verebilir.
.npmignore
. files: ["lib", "!lib/**/*.test.js"]
. :)
Açıklığa kavuşturmak için, ne zaman birisi yapsanpm install your-library
, npm , deponuza eklediğiniz dosyalar dışında deponun içerdiği tüm kaynak dosyaları indirecektir .npmignore
.
Kitaplığınızı kuran kişilerin yalnızca kitaplığınızın çalışmasına ihtiyacı olacağını bilin, başka hiçbir şey gerekli olmayacaktır.
Örneğin, bir kişi bir kitaplık yüklediğinde, muhtemelen sizin .travis.yml
veya .jshintrc
dosyalarınızın, hatta bazı görsellerin, Grunt dosyalarının, belgelerin vb. Umrunda değildir.
.npmignore
npm paketinizin daha az dosyaya sahip olmasına ve daha hızlı indirilmesine izin verebilir
.npmignore
doğrudan etkilemez , npm yayınlayıp yüklediğinizde paketinize nelerin gireceğini etkiler . Bu, dolaylı olarak indirilecek daha küçük dosyalar oluşturur.
Testlerinizi dahil etmeyin. Çoğu zaman testler, gerçek kod tabanının boyutunun 5 katıdır. Testleriniz Github vb. Üzerinde olduğu sürece, bu yeterince iyidir.
Ancak kesinlikle yapmanız gereken, NPM paketinizi yayınlanmış formatında test etmektir . Gerçek kod tabanında bulunan, ancak test paketinin parçası olmayan bazı duman testleri oluşturun.
Paketinizi tarball'ladıktan sonra test etme hakkında bilgi edinebilirsiniz: https://github.com/ORESoftware/r2g
NPM'de gerçekten yayınlamadan bir "npm yayınlama" sonucu nasıl test edilir?
npm install yourlibrary
örneğin birisi aradığında ihtiyaç duyulmayan her şeyi görmezden.travis.yml
.jshintrc