2017-05-11 4 views
1

Ich stolperte über diesen Fehler, während ich meine ersten Schritte in der Webpack-Nutzung versuchte.Webpack/Node.js Http-Modul: http.createServer ist keine Funktion

Gerade die Wirkung bei einer sehr einfachen Ebene zu reproduzieren, habe ich diese Mikro-Ordner wie folgt auf:

Knoten-Test-2

  • main.js
  • package.json
  • webpack.config.js

Mit folgendem Inhalt:


package.json

{ 
    "name": "node-test-2", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "start": "webpack && node bundle.js" 
    }, 
    "keywords": [], 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "webpack": "^2.2.0" 
    } 
} 

webpack.config.js

var path = require('path'); 

module.exports = { 
    entry : './main.js', 
    output : { 
     path : path.resolve(__dirname), 
     filename : 'bundle.js' 
    } 
} 

main.js

var http = require('http'); 

console.log("Creating Server"); 
var server = http.createServer(function(req, res){ 
    console.log('Connection Estabilished!'); 
    res.write('HELLO!'); 
    res.end(); 
}); 

console.log("Listening on port " + 8000); 
server.listen(8000); 

Nun, wenn ich einfach node main.js alles funktioniert wie vorgesehen.

Im Gegensatz dazu, wenn ich npm start, also Webpack auffordern, alles zu bündeln, was in der Bundle.js Fle benötigt und dann ausgeführt wird, wird der Fehler http.createServer is not a function Fehler beim Ausführen angezeigt.

Weitere Überprüfungen zeigen, dass die Funktion in der Datei bundle.js überhaupt nicht deklariert ist.

Was fehlt mir hier? Ist das etwas, wofür Webpack eigentlich nicht gedacht ist?

Mehr, vielleicht sinnlos, Informationen:

  • Laufen auf 10 Windows-
  • mit Knoten Version Getestet 6.9 und 7.10
  • sowohl mit webpack Getestet und webpack @ Beta zum Zeitpunkt des Schreibens

Antwort

6

Standardmäßig zielt Webpack auf Browser-Umgebungen ab, für die http.createServer() keinen Sinn ergibt.

können Sie das Ziel ändern das folgende in der Webpack Konfiguration durch Zusatz:

entry : './main.js', 
target : 'node', 
... 

https://webpack.js.org/configuration/target/