Как заставить Heroku запустить веб-пакет для приложения Flask? - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь развернуть мое тестовое приложение Flask на Heroku.Все работает, кроме внешнего интерфейса.Я использую Vuejs, созданный webpack.

Мой Procfile:

web: npm install; npm run dev; gunicorn app:app

Мой package.json:

{
    "name": "test",
    "version": "1.0.0",
    "description": "",
    "scripts": {
        "build": "webpack --config webpack.dev.js",
        "heroku-postbuild": "webpack --config webpack.dev.js"
    },
    "keywords": [],
    "author": "",
    "devDependencies": {
        "clean-webpack-plugin": "^0.1.19",
        "css-loader": "^1.0.0",
        "html-loader": "^0.5.5",
        "node-sass": "^4.9.3",
        "sass-loader": "^7.1.0",
        "style-loader": "^0.23.0",
        "vue-loader": "^15.4.2",
        "vue-template-compiler": "^2.5.17",
        "webpack": "^4.19.0",
        "webpack-cli": "^3.1.0",
        "webpack-merge": "^4.1.4"
    },
    "dependencies": {
        "@fortawesome/fontawesome-free": "^5.3.1",
        "axios": "^0.18.0",
        "bootstrap": "^4.1.3",
        "file-loader": "^2.0.0",
        "jquery": "^3.3.1",
        "jquery.easing": "^1.4.1",
        "lodash": "^4.17.11",
        "moment": "^2.22.2",
        "popper.js": "^1.14.4",
        "vue": "^2.5.17",
        "vue-router": "^3.0.1",
        "vuex": "^3.0.1",
        "webpack": "^4.19.0"
    }
}

Вывод не показывает, что он работаетВеб-пакет на всех:

$ git push heroku master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 322 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing requirements with pip
remote:
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 33.5M
remote: -----> Launching...
remote:        Released v13
remote:        https://mytestapp.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/mytestapp.git
   1fdf467..33852e6  master -> master

1 Ответ

0 голосов
/ 24 февраля 2019

Хорошо, я нашел решение для этой проблемы.

Это называется "несколько сборочных пакетов" и описано здесь: https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app

Итак, идея в том, что если вам нужно больше "компиляторов"Вам нужно добавить их вручную.В моем случае я уже распознал Python, но не Node.js.Итак, сначала я запускаю эту команду:

heroku buildpacks:add --index 1 heroku/nodejs

, а затем, когда я запускаю

heroku buildpacks

, я увидел:

  1. heroku/nodejs
  2. heroku/python

Затем изменил package.json:

"scripts": {
    "heroku-prebuild": "npm install",
    "heroku-postbuild": "webpack --config webpack.dev.js"
}

и толкнул к героку.

...