Heroku上的React / webpack应用程序部署失败

时间:2017-03-28 12:25:33

标签: reactjs heroku

我正在尝试在heroku上部署我的react starter。我编写了webpack文件,它可以在我的localhost上运行,但是当我在heroku上部署时,它会抛出一个运行时错误:  的 Cannot find module '../lib/util/addDevServerEntrypoints'

我的堆栈跟踪看起来像

  

错误: Cannot find module '../lib/util/addDevServerEntrypoints'   2017-03-28T11:56:47.036328 + 00:00 app [web.1]:at Function.Module._resolveFilename(module.js:469:15)   2017-03-28T11:56:47.036329 + 00:00 app [web.1]:在Function.Module._load(module.js:417:25)   2017-03-28T11:56:47.036329 + 00:00 app [web.1]:在Module.require(module.js:497:17)   2017-03-28T11:56:47.036330 + 00:00 app [web.1]:at require(internal / module.js:20:19)   2017-03-28T11:56:47.036330 + 00:00 app [web.1]:at Object。 (/app/node_modules/webpack-dev-server/bin/webpack-dev-server.js:9:33)   2017-03-28T11:56:47.036331 + 00:00 app [web.1]:在Module._compile(module.js:570:32)   2017-03-28T11:56:47.036331 + 00:00 app [web.1]:at Object.Module._extensions..js(module.js:579:10)   2017-03-28T11:56:47.036332 + 00:00 app [web.1]:在Module.load(module.js:487:32)   2017-03-28T11:56:47.036333 + 00:00 app [web.1]:在tryModuleLoad(module.js:446:12)   2017-03-28T11:56:47.036333 + 00:00 app [web.1]:在Function.Module._load(module.js:438:3)

2 个答案:

答案 0 :(得分:0)

在heroku中部署我的应用时,我遇到了类似的问题。

最好编写一个节点快速服务器来提供公共文件夹来部署你的应用程序,而不是使用webpack-dev-server。

可以像下面这样轻松创建Node express服务器。

const express = require('express')
const path = require('path')
const app = express()
app.use(express.static(path.resolve(__dirname,'dist')
app.listen(process.env.PORT || 8080)

答案 1 :(得分:0)

web-dev-server仅在开发模式下使用。改为使用“服务”。

  1. 执行npm install serve --save或yarn add serve -D

  2. 将以下脚本添加到package.json

    “脚本”:{ “ start”:“服务-s dist”, “ dev”:“ webpack-dev-server --mode development --inline --open --hot”, “ build”:“ webpack --mode production”, “ test”:“反应脚本测试”, “ eject”:“反应脚本弹出” }

在部署运行之前,请为Webpack构建npm生成或yarn生成静态文件。然后正常推到Heroku。部署构建成功后,Heroku将运行启动脚本。这样,它将使用“ serve”为您提供在dist文件夹中创建的静态文件。因此,您可以将Webpack-dev-server用于开发目的,并在生产中“服务”。通过节点提供dist文件夹文件的任何一种方法也都有效。干杯

相关问题