Come creare il tuo primo npm package

C

Tradotto e adattato da: https://codeburst.io/how-to-create-and-publish-your-first-node-js-module-444e7585b738

Requisiti

  • Registra un account su GitHub
  • Installa Node.js (npm è automaticamente installato insieme a Node, ma quasi sempre una versione vecchia)
  • Aggiorna npm alla versione più aggiornata
npm install npm@latest -g

Crea un repo su GitHub

Crea un nuovo repo su GitHub con il nome “hello-world”, assicurandoti di inizializzarlo con un file README, di aggiungere un .gitignore per Node, e di una licenza MIT;

Dopodichè, clona il repo localmente tramite git o con il tuo software abituale.

Perchè una licenza?

Sei libero o meno di aggiungere una licenza al tuo progetto, ma se non ne aggiungi una, significherà che sarà applicata la legislazione standard sul copyright. Ovvero, che tu detieni tutti i diritti del tuo codice sorgente, e che nessun altro potrà riprodurlo, distribuirlo, o creare derivati partendo dal tuo lavoro. Decidi, quindi, in base a ciò che vorrai fare.

Configura npm

Sul tuo progetto locale, definisci i seguenti parametri:

npm set init.author.name “Mario Rossi”
npm set init.author.email “mario.rossi@email.me”
npm set init.author.url “http://www.mariorossi.me"

Le credenziali inserite verranno salvate in un file~/.npmrc e saranno usate di default ogni qualvolta starai per creare un nuovo npm package, senza doverle inserire nuovamente.

Per autenticarti sulla tua macchina, loggati su npm con il tuo account, digitando:

npm login

Inizializza un nuovo npm package

Per inizializzare un nuovo modulo, avrai bisogno di creare un file package.json

Per farlo, digita

npm init

Ti verranno richiesti i dati necessari per creare il file package.json, pvvero ‘nome’ e ‘versione’.

La versione iniziale del tuo modulo sarà:

0.1.0

Non c’è un obbligo, ma sarebbe bene che la struttura del codice di versione rispetti sempre la semantica corretta, definita “semantic versioning” (SemVer).

Quando farai qualche modifica alla libreria, pensa sempre a questo schema:

Breaking down SemVer

Se vuoi aggiungere informazioni aggiuntive riguardo l’autore, puoi usare la seguente sintassi (email e website sono entrambi opzionali):

Your Name <email@example.com> (http://example.com)

A questo punto, troverai un file package.json nella cartella del tuo progetto.

Specifica una versione minima di Node

Aggiungendo il seguente campo (opzionale) al tuo package.json, puoi specificare la versione minima di Node necessaria affinchè il tuo package funzioni correttamente per tutti gli utenti che la utilizzeranno.

"engines": {
  "node": ">=4.2.4"
},

Crea un node module

Un modulo Node/npm è a tutti gli effetti un file JavaScript, but ma deve seguire la specifica CommonJS.

exports.printMsg = function() {   
  console.log("Hello World"); 
}

Scrivi un README

Aggiorna il file README.md , usando il linguaggio Markdown descrivendo il tuo modulo e inserendo esempi validi per gli utenti che lo utilizzeranno.

Qui troverai un piccolo template.

Hello =========

Una libreria di prova

## Installazione

  `npm install hello-world`

Commit & push sul repo GitHub

Prima di eseguire il push, crea anche un tag per la versione 0.1.0

git add .
git commit -m “Initial release”
git tag v0.1.0
git push origin master --tags

Pubblica su npm

npm publish

Se in questa fase ti verrà restituito un qualche tipo di errore, vuol dire che il package name che hai scelto è già utilizzato. Cambia il nome al tuo package e riprova.

Entra sul tuo npm account, dove troverai il tuo modulo.

Congratulazioni! Hai appena pubblicato il tuo primo Node module!

Aggiornamenti del package

Da questo punto in poi, l’unico modo che hai per aggiornare il tuo node module, è rilasciarne una nuova versione.

npm, infatti, non permette di pubblicare nuovamente lo stesso identificativo di versione, qualsiasi tipo di modifica tu stia eseguendo.

Dovrai quindi aggiornare il tuo package.json modificando il numero della versione, oppure:

npm version <update_type> -m "<message>"

dove update_type corrisponde ad una delle tipologie del semantic versioning: patch, minor, or major.

Quindi, dovremo lanciare l’istruzione:

npm version patch -m "Version

Questo comando farà tutto per noi: aggiornerà la versione sul package.json, creerà un nuovo commit e un corrispondente tag con la release appena creata.

Dopodichè aggiorna il tuo o repo e pubblica nuovamente su npm:

git push origin master --tags
npm publish

A proposito di me

Simone Torrisi

Freelance Web & Mobile Application Developer, specializzato in sviluppo Front-End su React

Gli articoli più letti