mucahid
.dev
  • Home
  • About
  • Projects
  • Blog
  • Media
  • Contact
  • Links
en

NPM - Package Publishing Notes & Policy

Written by Mucahid Yazar on November 17, 2021

instagramlinkedincodepenmail
NPM - Package Publishing Notes & Policy
npm
policy
package
package-manager
publishing

Bu sefer NPMÔÇÖde package publishing yaparken yapt─▒─č─▒m hatalar, kar┼č─▒la┼čt─▒─č─▒m sorunlar ve buldu─čum ├ž├Âz├╝mleri anlatt─▒─č─▒m bir yaz─▒ yazmak istiyorum. Asl─▒nda burada anlatacaklar─▒m─▒n bir ├žo─čunu sizde merak edip ara┼čt─▒r─▒p d├╝┼č├╝nmek ve challenge ya┼čamak zorunda kalacaks─▒n─▒z e─čer g├╝n├╝n birince bu i┼če deep dive giri┼čecek olursan─▒z.

Yapt─▒─č─▒m hatalar

├ľzel isimle publish etmek & Version numaras─▒ kullanmak

Diyelim ki icon-generator diye ├Âzel ve g├╝zel bir isime sahip bir library olu┼čturaca─č─▒m. Bu libraryi npmÔÇÖe direk olarak bu isimle pushlamak yerine daha s─▒radan icon-test-generator ad─▒yla g├Ândermek daha do─čru olurdu. Ve ayr─▒ca ben 1.0.0 gibi bir version numaras─▒ kullanm─▒┼čt─▒m package.json i├žinde. Buda bu ├Âzel isimle olu┼čturdu─čum packagenin bir daha asla bu version numaras─▒ ile yeniden publish edemeyece─čim anlam─▒na geliyordu. Yani e─čer olu┼čturdu─čunuz packageA k├╝t├╝phanesini npmÔÇÖe 1.0.0 version numaras─▒yla veya herhangi bir version numaras─▒ ile npmÔÇÖe g├Ânderirseniz bir daha bu packageyi npmden silseniz dahi ayn─▒ version numaras─▒ ile npme publish edemeyece─činiz anlam─▒na gelir. Yani version numaras─▒n─▒ de─či┼čip tekrar publish etmeliyiz demek oluyor bu.┬á:(

Test publishleri npm üzerinde yapmak

Evet buda i┼čin bir di─čer ac─▒ taraf─▒. Test publishlerimi a┼ča─č─▒daki ┼ču toolu bilene kadar hep npm ├╝zerinde yapt─▒m buda bana fazlaca maliyetli oldu nihayetinde. Siz bu hatay─▒ yapmay─▒n ve Verdaccio isimli local npm publish toolunu kullanarak olu┼čturdu─čunuz packageleri ├Ânce localde publsih edip sonu├žlar─▒n─▒ g├Âzlemleyin.

Alpha - Beta - RC Releaseleri Yapmamak

─░lla paketinizi npmÔÇÖe veya bir bulut ortam─▒na publish edecekseniz paketlerinizin ├žal─▒┼č─▒rl─▒─č─▒ndan emin olmadan ├Ânce paketlerinizi kesinlikle alpha, beta, rc gibi stabil olmayan s├╝r├╝mlerle ├ž─▒kartmal─▒s─▒n─▒z. Bu hem bu s├╝r├╝mlerin halen test edildi─čini hem baz─▒ ├Âzelliklerinin ├žal─▒┼čm─▒yor olabilece─čini anlatt─▒─č─▒ i├žin yanl─▒┼č publishlerde bu versionlarla birlikte sorun olmayacakt─▒r. Tabi ki e─čer ufak tefek buglar yoksa major problemler varsa stabil veya fix versionlar─▒ ├ž─▒kt─▒ktan sonra bu s├╝r├╝mleri unpublish yap─▒n yapam─▒yorsan─▒zda deprecated yap─▒n.

npm-version | npm Docs

Summary

  • npmÔÇÖe sadece bir kere ayn─▒ versionu publish edebilirsiniz, unpublish etseniz dahi daha ├Ânce publish edilmi┼č bir versionu tekrar npmÔÇÖe publish edemezsiniz.
  • npmÔÇÖe publish etmeden ├Ânce Verdaccio gibi local package managerlere publish┬áediniz.
  • ├žal─▒┼čt─▒─č─▒na tam olarak emin olmad─▒─č─▒n─▒z packageleri alpha, beta veya rc gibi s├╝r├╝m adlar─▒ ile┬á├ž─▒k─▒n─▒z.

Notes & Important Things

  • unpublish policyÔÇÖye dikkat edin. ├ľzetle bu yaz─▒n─▒n yaz─▒ld─▒─č─▒ tarih itibari ile: (De─či┼čebilir buras─▒ bu y├╝zden documentation tavsiye edilir)
    - ─░lk publishden 72 saat i├žinde her hangi bir zaman
    - E─čer 72 saat ├Ânceden publish edildiyse:
    * son hafta 300 den az download edildiyse
    * sadece 1 tane owner veya maintainera sahipse
    * npmdeki di─čer paketler bu pakete ba─čl─▒ de─čilse
    unpublish edilebilir.
  • Bu ┼čartlar d─▒┼č─▒ndakiler unpublish edilemez fakat profilinizde illada bu paketleri g├Ârmek istemiyorsan─▒z, npm i maintainer olarak ekleyerek kendinizide maintainerlardan ├ž─▒kartarak bu paketi npmÔÇÖe devrederek profilinizden kald─▒rabilirsiniz. B├Âylece paket yine var olur ama en az─▒ndan sizin ├╝zerinizden ve profilinizden kalkm─▒┼č┬áolur.
  • Belirli bir pacakge versionunu unpublish yapmak.
    npm unpublish packageName@version
  • B├╝t├╝n packageyi unpublish yapmak. (-f force anlam─▒nda)
    npm unpublish -f packageName@version
  • NpmÔÇÖi maintainer olarak pakete eklemek:
    npm owner add npm package
  • Paketten kendinizi maintainerlar aras─▒ndan ├ž─▒kartmak
    npm owner rm username package
  • B├╝t├╝n bir paketi depracated yapmak.
    npm deprecate packageName "message"
  • Belirli bir paketi deprecated yapmak.
    npm deprecate packageName@version "message"
Comments

6 Comments

BOOST YOUR FRONTEND CAREER

THE FRONTEND DEVELOPER