【问题标题】:Missing output file from webpack and node.js缺少 webpack 和 node.js 的输出文件
【发布时间】:2017-10-24 10:05:45
【问题描述】:

我正在尝试设置 node.js 服务器。目前,当我使用当前的 webpack.config.js 运行 npm start 时,一切都会加载。当我运行节点服务器时,index.js 丢失了。

webpack.config.js
   var config = {
   context: path.join(__dirname, 'src'),
   entry: './js/main.js',
   output: {
      path: __dirname + '/src/',
      filename: 'index.js',
   },
   devServer: {
      inline: true,
      port: 8080
   },
   module: {
      loaders: [
         {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
               presets: ['es2015', 'react']
            }
         }
      ]
   }
}

module.exports = config;

这里是html,省略了不需要看的东西。

<html lang="en">

  <head>
  </head>

  <body>
    <div id="app"></div>
    <script src="index.js"></script>
  </body>

</html>

包.json

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "start": "webpack-dev-server --content-base src --hot",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "history": "^1.17.0",
    "react": "^16.0.0",
    "react-dom": "^16.0.0",
    "react-router": "^4.2.0",
    "webpack": "^3.8.1",
    "webpack-dev-server": "^2.9.3"
  },
  "devDependencies": {
    "express": "^4.16.2",
    "http": "0.0.0",
    "react-socket-io": "^0.2.4",
    "socket.io": "^2.0.3",
    "webpack": "^3.8.1"
  }
}

我对 node.js 和 webpack 还很陌生,所以我不确定为什么在运行 npm start 时会输出 index.js 而不是在运行 node server 时。我可以上传 server.js,但它遵循一个非常基本的模板。

编辑:看来我已经成功了,我需要在不同的端口上运行 webpack 开发服务器以及 node.js 服务器。后续问题,是否可以将其更改为仅运行节点服务器并且仍然可以正常工作?

【问题讨论】:

标签: javascript html node.js reactjs webpack-dev-server


【解决方案1】:

在启动节点服务器之前,您需要运行webpack --config path/to/webpack.config.js在文件系统中生成index.js

您可以将build 命令添加到您的package.json

{
  ...
  "scripts": {
    "start": "webpack-dev-server --content-base src --hot",
    "build": "webpack --config webpack.config.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  ...
}

然后在启动节点服务器之前运行npm run build

【讨论】:

  • 工作完美,谢谢。我必须从 webpack.config.js 中删除 devServer,因为我使用的是 node.js,这是否合适?
  • 我的荣幸 :) 您可能需要 devServer 对象来保持您的开发(npm start)正常工作。我没有使用 webpack-dev-server,所以不太确定。如果不删除 devServer,构建会中断吗?
  • 使用节点服务器时不需要 webpack-dev-server。但是您将在客户端 js 文件中所做的更改不会反映为版本较旧。您必须使用 npm run build 进行重建,然后重新运行 nodejs 服务器。这个琐碎的事情还有其他选择。 Webpack-dev-mideware 来拯救。请参阅@jakewies 评论链接以开始。
猜你喜欢
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
相关资源
最近更新 更多