Nu vei crede cât de ușor este!

Dacă ați creat o mulțime de module npm, puteți trece mai departe. În caz contrar, vom trece printr-o introducere rapidă.

TL; DR

Un modul npm numai necesită un fișier package.json cu Nume și versiune proprietăți.

Hei!

Iată-te.

Doar un mic elefant cu toată viața în fața ta.

ad-banner

Nu sunteți un expert în crearea de pachete npm, dar ați dori să aflați cum.

Toți elefanții mari pășesc cu picioarele lor uriașe, făcând pachet după pachet, și sunteți toți ca:

„Nu pot concura cu asta.”

Ei bine, sunt aici să vă spun că puteți!

Gata cu îndoiala de sine.

Sa incepem!

Nu ești un elefant

Am vrut să spun că metaforic.

Te-ai întrebat vreodată cum se numesc bebelușii de elefanți?

Desigur că ai. Un copil de elefant este numit a vițel.

cred in tine

Îndoială de sine e real.

De aceea nimeni nu face vreodată ceva mișto.

Crezi că nu vei reuși, așa că nu faci nimic. Dar apoi îi glorifici pe oamenii care fac toate lucrurile minunate.

Super ironic.

De aceea, vă voi arăta cel mai mic modul posibil npm.

În curând veți avea acumulatori de module npm care zboară din vârful degetelor. Cod reutilizabil în măsura în care ochii pot vedea. Fără trucuri – fără instrucțiuni complexe.

Instrucțiunile complexe

Am promis că nu voi …

… dar chiar am făcut-o.

Nu sunt așa de răi. Mă vei ierta într-o zi.

Pasul 1: cont npm

Ai nevoie de unul. Este doar o parte din afacere.

Înscrieți-vă aici.

Pasul 2: conectați-vă

V-ați făcut un cont npm?

Da, ai făcut-o.

Misto.

Presupun, de asemenea, că puteți folosi linie de comandă / consolă etc. Voi numi terminalul de acum înainte. Există o diferență aparent.

Accesați terminalul și tastați:

npm adduser

De asemenea, puteți utiliza comanda:

npm login

Alegeți orice comandă va juca cu dvs.

Veți primi o solicitare pentru nume de utilizator, parola și e-mail. Pune-le acolo!

Ar trebui să primiți un mesaj asemănător cu acesta:

Logged in as bamblehorse to scope @username on https://registry.npmjs.org/.

Grozav!

Să facem un pachet

Mai întâi avem nevoie de un folder pentru a ne păstra codul. Creați unul în orice mod vă este confortabil. Îmi sun pachetul minuscul pentru că într-adevăr este foarte mic. Am adăugat câteva comenzi de terminal pentru cei care nu sunt familiarizați cu ele.

md tiny

În acel folder avem nevoie de un pachet.json fişier. Dacă utilizați deja Node.js – ați mai întâlnit acest fișier. E o JSON fișier care include informații despre proiectul dvs. și are o mulțime de opțiuni diferite. În acest tutorial, ne vom concentra doar pe două dintre ele.

cd tiny && touch package.json

Cât de mic poate fi cu adevărat, totuși?

Foarte mic.

Toate tutorialele despre realizarea unui pachet npm, inclusiv documentația oficială, vă spun să introduceți anumite câmpuri în package.json. Vom continua să încercăm să publicăm pachetul nostru cât mai puțin posibil până când acesta funcționează. Este un fel de TDD pentru un pachet minim de npm.

Vă rugăm să rețineți: Vă arăt acest lucru pentru a demonstra că realizarea unui pachet npm nu trebuie să fie complicat. Pentru a fi util comunității în general, un pachet are nevoie de câteva figuranțe și vom trece mai departe în articol.

Editura: Prima încercare

Pentru a publica pachetul dvs. npm, rulați comanda bine numită: npm publicați.

Deci, avem un folder goal.json în dosarul nostru și vom încerca:

npm publish

Hopa!

Am primit o eroare:

npm ERR! file package.json
npm ERR! code EJSONPARSE
npm ERR! Failed to parse json
npm ERR! Unexpected end of JSON input while parsing near ''
npm ERR! File: package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! Tell the package author to fix their package.json file. JSON.parse

npm nu-i place atât de mult.

Destul de corect.

Editura: Strike two

Să dăm pachetului nostru un nume în fișierul package.json:

{
"name": "@bamlehorse/tiny"
}

Este posibil să fi observat că am adăugat numele meu de utilizator npm la început.

Despre ce este vorba?

Prin folosirea numelui @ bamblehorse / tiny în loc de doar minuscul, creăm un pachet sub scop a numelui nostru de utilizator. Se numește a pachet cu scop. Ne permite să folosim nume scurte care ar putea fi deja luate, de exemplu minuscul pachet există deja în npm.

Este posibil să fi văzut acest lucru cu biblioteci populare, cum ar fi Cadrul unghiular de la Google. Au câteva pachete cu scop, cum ar fi @ unghiular / nucleu și @ unghiular / http.

Destul de cool, nu?

Vom încerca să publicăm a doua oară:

npm publish

Eroarea este mai mică de data aceasta – progres.

npm ERR! package.json requires a valid “version” field

Fiecare pachet npm are nevoie de o versiune, astfel încât dezvoltatorii să știe dacă pot actualiza în condiții de siguranță la o nouă versiune a pachetului dvs., fără a rupe restul codului lor. Se numește sistemul de versiune npm folosind SemVer, care înseamnă Versiuni semantice.

Nu vă faceți griji prea mult pentru a înțelege numele versiunilor mai complexe, dar iată rezumatul lor despre modul în care funcționează cele de bază:

Având un număr de versiune MAJOR.MINOR.PATCH, creșteți:

1. Versiunea MAJORĂ când faceți modificări API incompatibile,

2. Versiunea MINORĂ atunci când adăugați funcționalitate într-o manieră compatibilă cu versiunile anterioare și

3. Versiunea PATCH atunci când efectuați remedieri de erori compatibile cu versiunile anterioare.

Etichete suplimentare pentru pre-lansare și metadate de construire sunt disponibile ca extensii la formatul MAJOR.MINOR.PATCH.

https://semver.org

Editura: A treia încercare

Vom da pachetului nostru.json versiunea: 1.0.0 – prima lansare majoră.

{
"name": "@bamblehorse/tiny",
"version": "1.0.0"
}

Să publicăm!

npm publish

Aw scutură.

npm ERR! publish Failed PUT 402npm ERR! code E402npm ERR! You must sign up for private packages : @bamblehorse/tiny

Permiteți-mi să explic.

Pachetele vizate sunt publicate automat în mod privat deoarece, pe lângă faptul că sunt utile pentru utilizatorii singuri ca noi, sunt folosite și de companii pentru a partaja codul între proiecte. Dacă am fi publicat un pachet normal, atunci călătoria noastră s-ar încheia aici.

Tot ce trebuie să schimbăm este să-i spunem lui npm că, de fapt, vrem ca toată lumea să folosească acest modul – să nu-l țină blocat în seifurile lor. Deci, în schimb, alergăm:

npm publish --access=public

Boom!

+ @bamblehorse/tiny@1.0.0

Primim un semn plus, numele pachetului nostru și versiunea.

Am făcut-o – suntem în clubul npm.

Sunt entuziasmat.

Trebuie să fii încântat.

Cum sa faci un pachet minunat minunat si sa l publici
redactat într-un albastru prietenos

Ai prins asta?

npm te iubește

Drăguţ!

Versiunea unu este acolo!

Să ne regrupăm

Dacă vrem să fim luați în serios ca dezvoltator și dorim ca pachetul nostru să fie folosit, trebuie să le arătăm codului și să le spunem cum să-l folosească. În general, facem acest lucru punând codul nostru undeva public și adăugând un fișier readme.

De asemenea, avem nevoie de ceva cod.

Serios.

Nu avem încă cod.

GitHub este un loc minunat pentru a vă pune codul. Să facem un nou depozit.

1611655209 45 Cum sa faci un pachet minunat minunat si sa l publici

CITEȘTE-MĂ!

M-am obișnuit să tastez CITEȘTE-MĂ in loc de Citește-mă.

Nu mai trebuie să faci asta.

Este o convenție amuzantă.

Vom adăuga câteva ecusoane funky de la scuturi.io pentru a anunța oamenii că suntem super-cool și profesioniști.

Iată una care le permite oamenilor să cunoască versiunea actuală a pachetului nostru:

1611655209 796 Cum sa faci un pachet minunat minunat si sa l publici
npm (cu scop)

Următoarea insignă este interesantă. Nu a reușit deoarece nu avem de fapt niciun cod.

Ar trebui să scriem un cod …

1611655209 942 Cum sa faci un pachet minunat minunat si sa l publici
dimensiunea pachetului npm (minimizat)
1611655209 120 Cum sa faci un pachet minunat minunat si sa l publici
Micul nostru readme

Licență de cod

Acest titlu este cu siguranță un Referință James Bond.

Am uitat de fapt să adaug o licență.

O licență permite oamenilor să știe în ce situații pot folosi codul dvs. Sunt o mulțime de altele.

Există o pagină interesantă numită informații în fiecare depozit GitHub în care puteți verifica diferite statistici – inclusiv standardele comunității pentru un proiect. Voi adăuga licența de acolo.

1611655209 673 Cum sa faci un pachet minunat minunat si sa l publici
Recomandări comunitare

Apoi ați lovit această pagină:

1611655209 6 Cum sa faci un pachet minunat minunat si sa l publici
Github vă oferă un rezumat util al fiecărei licențe

Codul

Încă nu avem niciun cod. Acest lucru este ușor jenant.

Să adăugăm câteva acum înainte de a pierde toată credibilitatea.

module.exports = function tiny(string) {
  if (typeof string !== "string") throw new TypeError("Tiny wants a string!");
  return string.replace(/s/g, "");
};
Inutil – dar frumos

Iata.

A minuscul funcție care elimină toate spațiile dintr-un șir.

Deci, tot ce necesită un pachet npm este un index.js fişier. Acesta este punctul de intrare în pachetul dvs. Puteți face acest lucru în moduri diferite pe măsură ce pachetul dvs. devine mai complex.

Dar deocamdată asta este tot ce ne trebuie.

Am ajuns?

Suntem atât de aproape.

Probabil ar trebui să ne actualizăm minimul pachet.json și adăugați câteva instrucțiuni la readme.md.

Altfel nimeni nu va ști să folosească frumosul nostru cod.

pachet.json

{
  "name": "@bamblehorse/tiny",
  "version": "1.0.0",
  "description": "Removes all spaces from a string",
  "license": "MIT",
  "repository": "bamblehorse/tiny",
  "main": "index.js",
  "keywords": [
    "tiny",
    "npm",
    "package",
    "bamblehorse"
  ]
}
Descriptiv!

Am adăugat:

  • Descriere: o scurtă descriere a pachetului
  • repertoriu: GitHub prietenos – astfel încât să puteți scrie nume de utilizator / repo
  • licență: MIT în acest caz
  • principal: punctul de intrare în pachetul dvs., în raport cu rădăcina folderului
  • Cuvinte cheie: o listă de cuvinte cheie utilizate pentru a vă descoperi pachetul în căutarea npm

readme.md

Am adăugat instrucțiuni despre cum să instalați și să utilizați pachetul. Grozav!

Dacă doriți un șablon bun pentru readme, verificați pachetele populare din comunitatea open source și utilizați formatul acestora pentru a începe.

Terminat

Să publicăm pachetul nostru spectaculos.

Versiune

Mai întâi vom actualiza versiunea cu versiunea npm comanda.

Aceasta este o versiune majoră, așa că tastăm:

npm version major

Care rezultate:

v2.0.0

Publica!

Să rulăm noua noastră comandă preferată:

npm publish

E gata:

+ @bamblehorse/tiny@2.0.0

Chestii tari

Pachetul Fobie vă oferă un rezumat excelent al pachetului dvs. npm. Puteți verifica fiecare fișier pe site-uri precum Împachetați de asemenea.

Mulțumesc

A fost o călătorie minunată pe care tocmai am făcut-o. Sper că ți-a plăcut la fel de mult ca mine.

Vă rog să-mi spuneți ce ați gândit!

Marcați pachetul pe care tocmai l-am creat aici:

Github.com/Bamblehorse/tiny

0*qmkE3zw9beF6fP 0
„Un elefant parțial scufundat în apă.” de Jakob Owens pe Unsplash

Urmărește-mă Stare de nervozitate, Mediu sau GitHub