2015-09-09 33 views
13

Sto cercando di creare un'app Web in cui voglio archiviare tutti i file html, js e css su amazon s3 e comunicare con un server riposante tramite API.Posso usare webpack sul lato client senza server nodejs?

Sto cercando di ottenere il caricamento lazy e magari il routing con il router di risposta. Sembra che il webpack abbia questa suddivisione del codice funzione che funzionerebbe allo stesso modo del caricamento lento.

Tuttavia, tutti i tutorial e gli esempi che ho trovato riguardano webpack-dev-server, che è un piccolo server express nodo. Esiste comunque la possibilità di generare bundle in fase di compilazione e caricare tutto su amazon s3 e ottenere qualcosa di simile a OcLazyLoading di Angular?

+0

È il tuo obiettivo non utilizzare nodejs durante lo sviluppo? O è sufficiente non avere un requisito per il nodo in produzione? –

+0

Il mio obiettivo è mettere tutto html, js e css ecc su amazon s3 dove possono solo ospitare pagine web statiche. Quindi penso che potrei usare il nodo nello sviluppo. – LoveProgramming

+0

Sì, suggerirei di utilizzare node/webpack come pipeline di build, quindi copiare i file statici fino a S3 –

risposta

7

È sicuramente possibile creare un file js bundle statico, che è possibile utilizzare nel codice di produzione che non include webpack-dev-server.

Vedere this example come riferimento (nota: sono il proprietario di questo repo). webpack.prod.config.js crea un file bundle pronto per la produzione utilizzando webpack tramite node.js che di per sé non richiede più node.js. Per questo motivo puoi semplicemente servirlo come un semplice file statico (che viene eseguito nell'esempio dal vivo).

La differenza principale è la modalità di scrittura dei punti di ingresso negli ambienti di sviluppo e produzione. Per lo sviluppo webpack-dev-server viene utilizzato

module.exports = { 
    entry: [ 
     'webpack-dev-server/client?http://localhost:3000', 
     'webpack/hot/only-dev-server', 
     './src/index' 
    ], 
    // ... 
} 

Nell'ambiente di produzione si salta la parte webpack-dev-server e il ricarico caldo

module.exports = { 
    entry: [ 
     './src/index' 
    ], 
    // ... 
} 

Se si desidera dividere il codice in più di un fascio, si potrebbe desiderare di dare un'occhiata a come definire multiple entry points e collegare i file di conseguenza.

+0

Grazie! Quindi tutte le funzionalità del webpack funzionerebbero ancora correttamente? Ti piace il caricamento lazy (code splitting)? – LoveProgramming

+0

Sicuro. Dai un'occhiata [qui] (http://webpack.github.io/docs/code-splitting.html) e [qui] (https://christianalfoni.github.io/react-webpack-cookbook/Lazy-loaded- entry-points.html) per una base di codice dettagliata. Le parti importanti sono 'require.ensure' (CommonJs) o' require' (AMD). – dotcs

+0

Grazie mille! – LoveProgramming

Problemi correlati