Javascript Webpack/Node.js Http模块:Http.createServer不是一个函数

Javascript Webpack/Node.js Http模块:Http.createServer不是一个函数,javascript,node.js,webpack,Javascript,Node.js,Webpack,我在尝试使用网页包的第一步时偶然发现了这个错误 为了在一个非常基本的层面上重现效果,我设置了这个微型文件夹,如下所示: 节点测试-2 main.js package.json webpack.config.js 包括以下内容: package.json { "name": "node-test-2", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start":

我在尝试使用网页包的第一步时偶然发现了这个错误

为了在一个非常基本的层面上重现效果,我设置了这个微型文件夹,如下所示:

节点测试-2

  • main.js
  • package.json
  • webpack.config.js
包括以下内容:


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

main.js

var path = require('path');

module.exports = {
    entry : './main.js',
    output : {
        path : path.resolve(__dirname),
        filename : 'bundle.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);

现在,如果我只是
node main.js
一切都按预期工作

相反,如果我
npm start
,从而提示webpack将bundle.js fle中需要的所有内容打包并运行它,则运行时会显示错误
http.createServer不是一个函数

进一步检查表明,bundle.js文件中似乎根本没有声明该函数

我错过了什么?这是webpack实际上不适合的东西吗

更多可能毫无意义的信息:

  • 在Windows10上运行
  • 使用节点版本6.9和7.10进行测试
  • 使用webpack和webpack@beta写作时

默认情况下,Webpack以浏览器环境为目标,
http.createServer()
对这些环境没有多大意义

您可以通过将以下内容添加到您的网页配置来更改目标:

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