javascript - Webpack/Node.js Http 模块 : http. createServer 不是函数

标签 javascript node.js webpack

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

只是为了在最基本的层面上重现效果,我这样设置了这个微型文件夹:

Node 测试 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'
    }
}

ma​​in.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 文件中,然后运行它,错误 http.createServer is not a function 运行时出现错误。

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

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

更多,也许毫无意义的信息:

  • 在 Windows 10 上运行
  • 已使用 Node 版本 6.9 和 7.10 进行测试
  • 在撰写本文时使用 webpack 和 webpack@beta 进行了测试

最佳答案

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

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

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

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

关于javascript - Webpack/Node.js Http 模块 : http. createServer 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43915463/

相关文章:

javascript - 从 Jquery 上下文菜单项选择更改事件的下拉列表中获取选定值

node.js - 如何在 Node.js 中关闭 tls 套接字连接?

javascript - Flow 和自定义 Webpack 加载器

javascript - 将数组样式查询参数传递给 Angularjs 中的资源

javascript - 检测 IE 操作中止问题的原因

javascript - Web 组件 - 每个插槽多个元素

javascript - 我如何将 Mongoose 中的字符串大写?

node.js - Mocha 在无服务器 AWS Lambda Express 应用程序中进行测试

javascript - asp.net core 2.0编译webpack-Cli依赖报错

javascript - 使用 Webpack 进行仅调试页面