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.
.npmignoreveya "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 .gitignoreolarak 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.
.coffeedosyaları 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..gitignorezaten girmeli . Npm'nin bakış açısından .npmignoregeçersiz kılan bir dosya kullanıyorsanız, bunları buraya yerleştirmelisiniz .gitignore..travis.ymlKodu kullanmak, test etmek veya görüntülemek için gerekli olmayan şeyler .CNAMEdosya veya yer tutucularla doldurmanıza kesinlikle gerek yoktur .index.htmlgh-pagesnpm 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 testtü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.ymlveya .jshintrcdosyaları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