Le dipendenze Node.js pesano troppo

9

Recentemente ho iniziato a giocare con node.js.

Ora, ogni tutorial per i nodi là fuori afferma che dovresti iniziare con

npm init

e poi, diciamo che vuoi un framework server standard, dì che hai scelto express:

npm install express

ma poi vorrai molte più cose a cui sei abituato da mondi come ASP.NET.

Parlo dei template engine (jade) e dei pre-processori del foglio di stile (SASS).

E poi ti dicono "installa gulp / grunt! in modo da poter minimizzare ed eseguire il server e così tante altre cose automaticamente!"

E questo significa installare gulp, node-sass e gulp-sass e gulp-uglify, e magari qualche roba più interessante (tsd o babel, markdown ecc.) ...

Ma tutti sono pesanti sul tuo disco e sul tuo progetto. Non cercare un momento e puoi facilmente trovare te stesso con una dimensione del disco di 100 MB + per quel progetto (che non è ancora nemmeno iniziato!) Per non parlare di più di 10000 file poiché ogni modulo del nodo porta le sue dipendenze, non importa che lo stesso la dipendenza è usata da un altro modulo. E questa è una cosa molto difficile da spostare ovunque, per non parlare di un server web.

Mi manca qualcosa? Non penso sia possibile che vengano dati così tanti elogi all'ambiente dei nodi, mentre esiste un difetto così evidente. Mi aspetto troppo (dopotutto ho provato a usare molti strumenti contemporaneamente), c'è qualcosa di banale che i veterani Node sanno ignorare?

    
posta Or Yaniv 29.03.2016 - 10:13
fonte

1 risposta

3

Il recente problema con il tasto sinistro è un ottimo esempio del problema con questa tendenza nel nodo. Quando dipendi da troppe cose, tutti sono inclini ad andare in ka-pow, rendere più difficile il debug del tuo progetto e, per un nuovo arrivato, più difficile comprendere il funzionamento della lingua.

Ora i buoni programmatori Node.js sanno scrivere applicazioni minimaliste, in cui dipendono le dipendenze. Meno cose dipendono - meglio è. Hai bisogno di tamponare le stringhe a sinistra? Dategli un codice in un aiutante, sono 11 righe di codice con gli spazi vuoti. Hai bisogno di numerare le tue stringhe? Inseriscilo, sono meno di 100 righe di codice.

Anche per attività più complicate, come la gestione dei progetti, suggerirei di attenermi ai Makefile mentre il tuo progetto è abbastanza semplice - grunt e gulp sono davvero, davvero utili per i progetti giganti che hanno molto da fare. Ma per il tuo blog SPA? Scrivi un Makefile, ci vogliono 5 minuti e tu conosci come funziona.

La tentazione di sfogliare solo npm ogni volta che devi scrivere 3 righe di codice è ottima, ma dovresti resistere, ogni volta che è ragionevole. Non includere jQuery se hai 3 manipolazioni DOM, non usare angolare per quella pagina promozionale statica, non usare express per un server semplicistico. Ma stai codificando un CMS? Dovresti essere pazzo a non usare pacchetti come jQuery, underscore e cosa non lo è. Lavorando con 10 tipi di raccolta, 3 db e interrogandoli tutto il tempo? Saresti pazzo a non usare underscore e pochi altri. Basti pensare 'posso risparmiare abbastanza tempo installando questo pacchetto?' oppure "Non posso inserire il codice solo per mezz'ora?"

    
risposta data 29.03.2016 - 17:17
fonte

Leggi altre domande sui tag