2015-01-10 18 views
8

Ho una struttura di cartelle per i miei moduli JS. Voglio un modulo per pagina. Questa non è un'app a singola pagina.Come posso stampare più cartelle con il webpack?

Come posso inviare file in una struttura di cartelle?

Da quello che posso vedere, l'unica possibilità è di produrre [name].js. Questo potrebbe funzionare se rendessi i nomi davvero unici, o potrei fare in modo che i nomi abbiano un - per un separatore di cartelle. Ciò significherebbe che a/b/c.js si tradurrebbe in nome a-b-c. Non mi piace davvero. Mi piacerebbe essere in grado di require("a/b/c").

Da quello che posso dire, non posso utilizzare un singolo file in bundle perché require non è disponibile al di fuori del modulo. Se lo fosse, potrei semplicemente creare un singolo bundle e require("a/b/c") su ogni pagina.

Se c'è un buon modo per farlo che non trovo su internet, per favore fatemelo sapere.

Sembra che io sia in grado di farlo facilmente con require.js utilizzando r.js, ma non voglio usare require.js e vorrei moduli CommonJS.

+0

Sto facendo qualcosa di simile a questo, ma non proprio lo stesso. Nel mio 'webpack.config.js' ho creato diverse configurazioni che passo a seconda della variabile d'ambiente NODE_ENV che imposto quando eseguo diversi script' npm'. Ad esempio, nel mio 'package.json' ho uno script chiamato' build-dev' che esegue '" set NODE_ENV = development && webpack "'. Spero che questo ti dia qualche idea! – Ganonside

risposta

1

È possibile utilizzare [nome] anche per creare nuove cartelle. Come questo:

output: { 
    path: __dirname, 
    filename: '[name]/[name].js', 
    chunkFilename: '[name].js', 
    publicPath: '/assets/' 
}, 
10

È possibile definire un punto di ingresso utilizzando slash, come questo:

entry: { 
    "main-plugin/js/background":"./src/main-plugin/background" 
} 

E output come questo:

output: { 
    path: path.join(__dirname, 'public'), 
    filename: '[name].js' 
}, 

Questa configurazione creerà una cartella public/main-plugin/js e volontà inserire il background.js in esso. Funziona almeno su Win7x64.

Problemi correlati