部署Django / React应用程序heroku

时间:2017-06-28 13:50:38

标签: node.js django bash reactjs heroku

我已经在heroku上部署了django app,一切都很好,没有错误等等。我在前端使用react,我想做npm install,{ {1}}所以我可以正确配置我的应用程序。

我无法运行gulp build,我只有heroku run npm install,我想这是可以的,因为当他在服务器上构建应用程序时,我需要以某种方式触发它,所以我&#39 ;我可以修改我的bash: npm: command not found

package.json

但是仍然没有在部署时触发{ "name": "Test app", "version": "1.0.0", "description": "Testing", "main": "bundle.js", "scripts": { "postinstall": "npm install" }, "dependencies": { "bootstrap": "^3.3.7", "babel-preset-es2015": "^6.1.2", "babel-preset-react": "^6.1.2", "babelify": "^7.2.0", "browser-sync": "^2.10.0", "browserify": "^12.0.1", "browserify-shim": "^3.8.11", "classnames": "^2.2.0", "core-util-is": "^1.0.1", "del": "^2.1.0", "flux": "^2.1.1", "gulp-autoprefixer": "^3.1.0", "gulp-bless": "^3.0.1", "gulp-connect": "^2.2.0", "gulp-html-replace": "^1.5.4", "gulp-if": "^2.0.0", "gulp-insert": "^0.5.0", "gulp-livereload": "^3.8.1", "gulp-load-plugins": "^1.1.0", "gulp-minify-css": "^1.2.1", "gulp-rename": "^1.2.2", "gulp-sass": "^2.1.0", "gulp-sourcemaps": "^1.6.0", "gulp-sync": "^0.1.4", "gulp-uglify": "^1.4.2", "history": "^1.13.0", "keymirror": "^0.1.1", "lodash": "^3.10.1", "react": "^0.14.2", "react-addons": "^0.9.0", "react-bootstrap": "^0.27.3", "react-dom": "^0.14.2", "react-mixin": "^3.0.3", "react-router": "^1.0.0", "react-style": "^0.5.5", "reqwest": "^2.0.5", "rimraf": "^2.4.3", "run-sequence": "^1.1.4", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0", "watchify": "^3.6.0", "when": "^3.7.4" }, "devDependencies": { "babel-preset-es2015": "^6.1.2", "babel-preset-react": "^6.1.2", "babelify": "^7.2.0", "browser-sync": "^2.10.0", "browserify": "^12.0.1", "browserify-shim": "^3.8.11", "classnames": "^2.2.0", "core-util-is": "^1.0.1", "del": "^2.1.0", "flux": "^2.1.1", "gulp-autoprefixer": "^3.1.0", "gulp-bless": "^3.0.1", "gulp-connect": "^2.2.0", "gulp-html-replace": "^1.5.4", "gulp-if": "^2.0.0", "gulp-insert": "^0.5.0", "gulp-livereload": "^3.8.1", "gulp-load-plugins": "^1.1.0", "gulp-minify-css": "^1.2.1", "gulp-rename": "^1.2.2", "gulp-sass": "^2.1.0", "gulp-sourcemaps": "^1.6.0", "gulp-sync": "^0.1.4", "gulp-uglify": "^1.4.2", "history": "^1.13.0", "keymirror": "^0.1.1", "lodash": "^3.10.1", "react": "^0.14.2", "react-addons": "^0.9.0", "react-bootstrap": "^0.27.3", "react-dom": "^0.14.2", "react-mixin": "^3.0.3", "react-router": "^1.0.0", "react-style": "^0.5.5", "reqwest": "^2.0.5", "rimraf": "^2.4.3", "run-sequence": "^1.1.4", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0", "watchify": "^3.6.0", "when": "^3.7.4" }, "engines": { "node": "8.0.0", "npm": "5.0.4" }, "author": "", "license": "" } 进程,所以任何人都可以帮助我理解如何正确配置它?

这是我的Procfile:

npm install

1 个答案:

答案 0 :(得分:1)

Heroku通过buildpacks支持不同的服务器端语言:

  

Buildpacks负责将部署的代码转换为slug,然后可以在dyno上执行。 Buildpacks由一组脚本组成,根据编程语言,脚本将检索依赖项,输出生成的资产或编译的代码等。

由于应用程序的Python部分似乎正在正确安装,因此Heroku必须将其检测为Python应用程序(因为它包含last文件),或者您已将其手动配置为一个。在许多情况下,单个构建包就足够了。

但是,由于您还在使用Node.js,因此应启用second buildpack

  

在构建应用程序时,有许多场景中单个buildpack是不够的。这包括您需要的情况:

     
      
  • 为您的应用使用的每种语言运行buildpack。例如,为资产运行JavaScript buildpack,为您的应用程序运行Ruby buildpack。
  •   

基本流程如下(使用开发计算机上的Heroku CLI):

requirements.txt

我上面提供的链接包含更多细节。我建议全部阅读这两篇文章。