Ошибка при развертывании Angular 2 на Heroku

Нужна помощь в развертывании приложения angular 2, созданного с помощью angular-cli. Мое приложение работает на порту 4200 локально, и у меня есть настройки прокси-сервера, которые направляют мои URL-запросы на localhost: 8080, где работает мой внутренний сервер (приложение spring -boot).

Я успешно развернул свой внутренний сервер на heroku. Теперь я хочу развернуть свое приложение angular и на heroku.

При выполнении «ng build --aot -prod» сборка завершается с ошибкой «ERROR in Ошибка при статическом разрешении значений символов. Вызов функции 'ɵmakeDecorator', вызовы функций не поддерживаются. Рассмотрите возможность замены функции или лямбда на ссылка на экспортированную функцию, разрешение символа Injectable в /tmp/build_cc056824e4c062306cc02ac5a41c4dc8/node_modules/angular-datatables/node_modules/@angular/core/core.d.ts ".

Ниже находится файл package.json

{
  "name": "client-app",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng server --proxy-config proxy.conf.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "preinstall": "npm install -g http-server",
    "postinstall": "ng build --aot -prod"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/cli": "1.0.6",
    "@angular/compiler-cli": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "angular-datatables": "^4.1.0",
    "core-js": "^2.4.1",
    "datatables.net": "^1.10.15",
    "datatables.net-dt": "^1.10.15",
    "jquery": "^3.2.1",
    "ng2-uploader": "^2.0.0",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4",
    "@angular/cli": "1.0.6",
    "@angular/compiler-cli": "^4.0.0",
    "@types/datatables.net": "^1.10.1",
    "@types/jasmine": "2.5.38",
    "@types/jquery": "^2.0.45",
    "@types/node": "~6.0.60",
    "codelyzer": "~2.0.0",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0"
  },
  "engines": {
  "node": "6.10.3",
  "npm": "3.10.10"
  },
  "devDependencies": {

  }
}

и мой файл proxy.conf.json -

{
    "/api":{
    "target" : "http://localhost:8080",
    "secure" : false
    }
}

person Shiv Baral    schedule 22.06.2017    source источник


Ответы (1)


Пожалуйста, проверьте свой Procfile - вам нужно создать такой

Heroku требуется ProcFile для его развертывания.

ProcFile:

web: tsc && lite-server 

Выше моя конфигурация.

А затем замените его строкой из package.json

"start": "ng server --proxy-config proxy.conf.json",

И измените его на web: ng server --proxy-config proxy.conf.json в ProcFile. Ваш ProcFile должен выглядеть так, как показано ниже.

web: ng-server --proxy-config proxy.conf.json

Поместите изменения в git heroku, как указано ниже

git add .
git commit -m 'Procfile Updated'
git push heroku master

затем введите cli после загрузки коммита git

heroku ps: scale web = 1 Тестовый запуск приложения на локальном компьютере

 heroku local web

Если приложение не работает должным образом

запустить

heroku logs

проверьте вывод журнала на наличие ошибок.

Наконец, если приложение работает нормально локально, выполните

heroku open

Это запустит приложение из облака heroku.

Надеюсь, это поможет.

person Magnus Melwin    schedule 19.07.2017