Vorrei creare un'architettura pulita per il mio progetto JavaScript. Il progetto consiste in un server Node.js e due front-end Angular.js separati con scopi diversi. Per costruire i front-end io uso un build personalizzato per grunt ciascuno. La build risulta in un singolo file HTML per progetto e due file CSS e JavaScript miniati/migliorati. Ogni front-end viene quindi eseguito su una versione minima separata di un server Node (serve solo i file statici).: Combina diversi progetti JavaScript (modulari)
Finora, così chiaro. L'obiettivo è ora di rendere possibile aggiungere moduli plugin a ciascuno dei tre progetti principali. Un modulo dovrebbe estendere il codice JavaScript di uno dei progetti. Questo significa ad es. in caso di un front-end per aggiungere un modulo angolare aggiuntivo alla configurazione angolare. So già dove e come aggiungere il codice del modulo angolare nell'app principale.
Il problema è ora: come si crea un processo di creazione ragionevole su più progetti che dipende anche dai moduli di plugin? Ho trovato due soluzioni.
- È possibile aggiungere un plug-in come dipendenza NPM a uno dei progetti principali. Questo ha tuttavia lo svantaggio, che ogni cambiamento nel modulo deve essere trasferito su NPM e non è molto conveniente sviluppare il modulo plugin in questo modo. Un plugin non è eseguibile da solo.
- Potrei avere una lista di plugin all'interno del Gruntfile di uno dei progetti principali. Questo elenco conterrà percorsi di file locali ai moduli. Nella build del modulo core, verranno eseguite le build dei plug-in. Ciò includerebbe comunque la visione dei cambiamenti dei file creati dei plugin. È una soluzione sporca.
- Potrei avere un altro progetto che contenga dipendenze dal progetto principale e da tutti i plugin e lo costruisca tutti insieme. La questione su come aggiungere la dipendenza rimane (caso 1 o 2)
Come risolverebbe questo problema?
Probabilmente vorremmo esaminare l'uso del webpack invece del grunt. – charlietfl
@charlietfl Potresti spiegare come raggiungere un'architettura e un ambiente di sviluppo piacevole con il webpack su più progetti? –
Ho paura di non essere esperto nell'usarlo perché non si adatta alla maggior parte di ciò che faccio. l'ho superato solo perché ritengo che sarebbe di grande aiuto in quanto utilizza i moduli di nodo – charlietfl