2016-07-19 389 views
5

Esiste un modo per utilizzare i caricatori di Webpack in un'app Nodo/Eseguire un'app Node in un ambiente Webpack?Come utilizzare i caricatori di Webpack in un'app Node?

Ad esempio, ho una configurazione webpack con un caricatore di stili. Nel mio Nodo app faccio la seguente:

import style from 'style.css' 

console.log(style.someClass) 

Voglio correre piace $ node app.js caricatori

risposta

0

WebPack non sono transpilers o interpreti, essi semplice raccolgono beni che vengono poi trattati via a qualcosa come SASS o un concatenatore di testi; entro i confini dell'ambiente Webpacks.

Quindi non è possibile riutilizzarli nel modo desiderato, perché mentre potete ovviamente importarli e chiamarli (sono solo funzioni + classi), non convertono i CSS in oggetti JSON (essi non farlo) come hai scritto nell'esempio desiderato.

Sembra che tu solo bisogno di un'implementazione JS di un parser css - dare un'occhiata al https://github.com/reworkcss/css

+0

Sto cercando qualcosa che mi consenta di eseguire un blocco di codice in un ambiente Webpack. Non sto cercando un caricatore CSS specifico, questo è solo un esempio. Ma sembra che l'unico modo per eseguire un codice in un ambiente Webpack sia eseguirlo con Webpack: '$ webpack app.js' – haxpanel

0

Si dovrebbe essere in grado di creare una compilation mira il node ambiente che si può in ultima analisi, eseguire semplicemente chiamando node output.js e questo eseguirà immediatamente il modulo del punto di ingresso.

Nel caso in cui si stia utilizzando una versione più recente di Node.js, Webpack non supporta la sintassi del modulo ES2015, quindi sarà necessario configurare Babel per Node.js allo transform the modules.

1

Ho un'idea che potrebbe funzionare, in base allo Webpack NodeJS API. Che cosa succede se mettiamo il codice che vogliamo essere in grado di utilizzare l'ambiente Webpack (con i caricatori di unità progettate) in un modulo:

appModule.js:

import style from 'style.css' 

console.log(style.someClass) 

E require con il seguente:

app.js:

import Webpack from 'webpack' 
import MemoryFS from 'memory-fs' 

... 

webpackConfig.entry = 'appModule.js' 
webpackConfig.output = 'appModule-out.js' 

let compiler = Webpack(webpackConfig) 
let mfs = new MemoryFS() 

compiler.outputFileSystem = mfs 
compiler.run(function (err, stats) { 
    require(webpackConfig.output) 
}) 

Probabilmente non funzionerà perché il bisogno di sguardi per l'uscita sui FS fisici ... Possiamo require dalla memoria FS? Non l'ho ancora provato - Qualche idea?