我遵循指示,将回购推送到heroku,发现它崩溃了。我将heroku / nodejs用作buildpack。
程序文件:
web: npm run build && npm run heroku-server
脚本:
"scripts": {
"heroku-server": "cross-env SERVER_PROD_PORT=$PORT SERVER_PROD_HOST=0.0.0.0 npm run server",
"browser": "cross-env NODE_ENV=development WEBPACK_CONFIG=browser_dev webpack-dev-server --open",
"build": "cross-env NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors",
"build-analyze": "cross-env BUNDLE_ANALYZER=1 NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors",
"build-browser": "cross-env NODE_ENV=production WEBPACK_CONFIG=browser_prod webpack --colors",
"build-run": "npm run build && npm run server",
"build-static": "cross-env NODE_ENV=production WEBPACK_CONFIG=static webpack --colors",
"build-static-run": "npm run build-static && npm run static",
"clean": "rimraf dist",
"lint": "eslint .",
"server": "node dist/server",
当我从Procfile或$ heroku本地网络运行脚本时,一切正常。但是推送回购将在日志中引发错误:
2018-01-30T22:23:05.780537+00:00 heroku[web.1]: Starting process with command `npm run build && npm run heroku-server`
2018-01-30T22:23:07.502982+00:00 heroku[web.1]: State changed from starting to crashed
2018-01-30T22:23:07.491558+00:00 heroku[web.1]: Process exited with status 1
2018-01-30T22:23:07.292672+00:00 app[web.1]:
2018-01-30T22:23:07.292693+00:00 app[web.1]: > beers@2.10.0 build /app
2018-01-30T22:23:07.292694+00:00 app[web.1]: > cross-env NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors
2018-01-30T22:23:07.292695+00:00 app[web.1]:
2018-01-30T22:23:07.421065+00:00 app[web.1]: events.js:137
2018-01-30T22:23:07.421068+00:00 app[web.1]: throw er; // Unhandled 'error' event
2018-01-30T22:23:07.421070+00:00 app[web.1]: ^
2018-01-30T22:23:07.421071+00:00 app[web.1]:
2018-01-30T22:23:07.421073+00:00 app[web.1]: Error: spawn webpack ENOENT
2018-01-30T22:23:07.421074+00:00 app[web.1]: at _errnoException (util.js:1003:13)
2018-01-30T22:23:07.421076+00:00 app[web.1]: at Process.ChildProcess._handle.onexit (internal/child_process.js:201:19)
2018-01-30T22:23:07.421078+00:00 app[web.1]: at onErrorNT (internal/child_process.js:389:16)
2018-01-30T22:23:07.421080+00:00 app[web.1]: at process._tickCallback (internal/process/next_tick.js:152:19)
2018-01-30T22:23:07.421081+00:00 app[web.1]: at Function.Module.runMain (module.js:703:11)
2018-01-30T22:23:07.421083+00:00 app[web.1]: at startup (bootstrap_node.js:193:16)
2018-01-30T22:23:07.421085+00:00 app[web.1]: at bootstrap_node.js:617:3
2018-01-30T22:23:07.426513+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2018-01-30T22:23:07.426855+00:00 app[web.1]: npm ERR! errno 1
2018-01-30T22:23:07.428042+00:00 app[web.1]: npm ERR! beers@2.10.0 build: `cross-env NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors`
我想念什么?
首先,不要在Procfile中放入“ npm run build”步骤。这样做会使该步骤在您的Web
dyno
每次重新启动时都运行,这不是您想要的。
相反,您要在slug编译期间运行webpack(或确保应用程序中存在所需的依赖项所需的任何其他操作)。
由于您使用的是heroku / node.js buildpack,因此它将自动为您运行“ npm
install”(或毛线安装,如果您选择使用yarn软件包管理器)。
但是,如果您需要安装npm /yarn以上(例如,您需要运行webpack来捆绑客户端依赖项),则需要为slug编译器提供这些步骤的附加说明。做到这一点的一种好方法是使用特定于heroku的构建步骤。
因此,例如,您可能希望在package.json“脚本”中的heroku-postbuild步骤中运行webpack,例如:
"heroku-postbuid" : "cross-env NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors",
但是,此外,您还需要注意,默认情况下,Heroku不会安装任何package.json
devDependencies。因此,如果在devDependencies中列出了webpack本身,则默认情况下将无法在heroku-
postbuild步骤中使用它。
解决方法是将webpack(以及所需的任何其他构建依赖项)移到“ dependencies”(而不是“ devDependencies”),或将configvar NPM_CONFIG_PRODUCTION设置为false:
heroku config:set NPM_CONFIG_PRODUCTION=false
我有一个时髦的脚本,可以推广代码。长话短说,我知道在那个脚本中的某个时间点它是否成功。如果不成功,我想使构建失败。有没有办法在时髦中失败构建? 示例: 在“执行 Groovy 脚本”插件中。您可以编写代码。 其中“checkPromote”根据升级的状态返回true或false值。
我正在尝试部署一个简单的应用程序,没什么大不了的,但我总是收到这个错误。 错误R10(启动超时)- 即使Heroku在60秒前就完成了部署。我也在服务器上设置了process.env.PORT。我在Heroku上有几个应用程序,所以我很熟悉部署。 我事先制作了服务器捆绑文件(src/build/bundle.js)和客户端捆绑文件(src/dist/bundle.js),并将所有内容推送到Hero
我在本地有一个Spring Boot REST API。 它正在成功地生成。当我运行mvn clean package时,war文件在本地。 现在我想把它部署到Heroku。 这些就是我所做的步骤。 > 将代码上传到github respository。比如说\myrestapi。 打开终端以运行Heroku CLI命令 登录heroku heroku登录 运行命令在heroku上创建应用程序 这
我只是想看看在以下情况下最好的做法是什么。 这样dyno在不运行时就不会累积使用量,还是我就让它保持原样? 在这里做什么最好? 谢谢
问题内容: 我正在尝试使用CLI在Heroku上部署React Web应用程序。但是当我跑步时 从我的项目文件夹中,它抛出错误: 由于使用npm,我做了rm并删除了纱线锁文件。仍然出现相同的错误。现在,当我实际执行rm yarn.lock时,在终端中找不到任何条目。为什么不知道Heroku CLI坚持认为我的目录中仍然有yarn lock文件。 问题答案: 在将其推送到Heroku之前,您是否要回