2016-07-19 35 views
5

Gibt es eine Möglichkeit, Webpack-Loader in einer Knoten-App zu verwenden/eine Knoten-App in einer Webpack-Umgebung auszuführen?Wie werden Webpack Loader in einer Node App verwendet?

Zum Beispiel habe ich eine Webpack-Konfiguration, die einen Style-Loader hat. In meinem Knoten App kann ich folgendes:

import style from 'style.css' 

console.log(style.someClass) 

ich es wie $ node app.js

Antwort

0

Webpack Lader laufen wanna sind nicht transpilers oder Dolmetscher, sie einfach Vermögen sammeln, die dann zu so etwas wie SASS behandelt off oder ein Textverkettung; innerhalb der Grenzen der Webpacks-Umgebung.

So ist es nicht möglich, sie wieder zu verwenden, wie Sie wollen, während Sie natürlich importieren und aufrufen (sie sind immer noch nur Funktionen + Klassen), sie konvertieren CSS nicht in JSON-Objekte (sie tu dies nicht), wie du es in deinem gewünschten Beispiel geschrieben hast.

Es sieht aus wie Sie gerade eine JS Implementierung eines CSS-Parser müssen - hat einen Blick auf https://github.com/reworkcss/css

+0

Ich bin auf der Suche nach etwas, mit dem ich einen Codeblock in einer Webpack-Umgebung ausführen kann. Ich bin nicht auf der Suche nach bestimmten CSS-Loader, das ist nur ein Beispiel. Aber es sieht so aus, als ob die einzige Möglichkeit, einen Code in einer Webpack-Umgebung auszuführen, darin besteht, ihn mit Webpack auszuführen: '$ webpack app.js' – haxpanel

0

Sie sollten eine Kompilation Targeting die node Umgebung zu schaffen, in der Lage, die man einfach letztlich laufen kann durch node output.js und diesen Aufruf führt das Einstiegspunktmodul sofort aus.

Wenn Sie eine neuere Version von Node.js verwenden, unterstützt dieses Webpack die ES2015-Modul-Syntax nicht. Daher müssen Sie Babel für Node.js sowie transform the modules konfigurieren.

1

Ich habe eine Idee, die könnte funktionieren, basierend auf der Webpack NodeJS API. Was passiert, wenn wir den Code setzen, dass wir (mit den projektierten Modul-Loader) in ein Modul die Webpack Umgebung verwenden können, möchten:

appModule.js:

import style from 'style.css' 

console.log(style.someClass) 

Und require es mit dem folgenden:

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) 
}) 

Wahrscheinlich wird es nicht funktionieren, weil das Aussehen für die Ausgabe auf die physikalischen FS benötigen ... können wir require aus dem Speicher FS? Ich habe es noch nicht versucht - Irgendeine Idee?