[Linuxtrent] Re: Node.js ecosystem

  • From: Mario Alexandro Santini <alexmario74@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Fri, 10 Feb 2017 20:08:21 +0100

2017-02-10 18:16 GMT+01:00 Stefano Morandi <liste@xxxxxxxxxxxx>:



Ben venuto nel mio mondo!


Ciao Stefano,


Quando ho chiesto ai frontendisti se a loro pareva normale che per
compilare 2 CSS e fare 3 animazioni in croce, ci fosse bisogno di
500MB(!!!) di dipendenze e 12.000 file/filettini, mi è stato risposto:

“Ma Node.js funziona così”


No, questo no.

Gli ambienti di sviluppo è possibile, ma in produzione puoi eliminare un
sacco di dipendenze, te lo posso garantire.

Non conosco le librerie che usano i tuo "frontendisti", come li chiami, ma
dubito che gli serva tutta quella roba.

Probabilmente servirebbe fare un po' di tooning sul package.json.


Con degli occhioni da agnellino…

Mah!

O sono tutti degli inconsapevoli sprovveduti, oppure sono proprio io ad
essere troppo vecchio e non capire quella che, a me, pare un’assoluta
follia.



Pigrizia o paura di "rompere" l'ambiente di sviluppo.

In entrambi i casi: un brutto sintomo.

Dovresti poter fornire loro un ambiente riproducibile da utilizzare per
fare le prove dove eliminare le librerie "superflue" in produzione.

npm prevede in package.json 2 sezioni di dipendenze, una per la produzione
e una per lo sviluppo.

Con la variabile d'ambiente NODE_ENV si può pilotare quale lista npm
utilizzi.

Con production, installa le dipenenze di produzione.

Con develop quelle di sviluppo.

Alcuni package possono essere installati in modo globale, perché magari
sono utilities che servono per gestire il progetto come ad esempio grunt,
webpack e altri tool.

Poi se scrivono codice ES6 non compatibile con Node.js, possono eliminare
Babeljs traspilando il codice in ES5 per la produzione.

Io su un progetto sono passato dai 350MB dello sviluppo a 210MB di
produzione in mezza giornata di lavoro.

Il peso è in diverse librerie come i driver per DB come Mongo, librerie
LDAP e così via di cui non posso fare a meno.


Ma si possono utilizzare anche parametri di npm per ottenere lo stesso
risultato.

Prova a guardare dentro il file package.json.







Ciao
--
Stefano Morandi        |  stefano(at)uomorando.it       |  ()  text




-- 


 Mario

Other related posts: