Angular App不构建在Heroku上

时间:2017-04-26 14:32:52

标签: heroku angular-cli

我有一个角度2的应用程序,在我的MAC上建立良好。以下是相关版本:

@angular/cli: 1.0.0-beta.30
node: 7.6.0
os: darwin x64
@angular/cli: 1.0.0-beta.30
@angular/common: 2.4.9
@angular/compiler-cli: 2.4.9
@angular/compiler: 2.4.9
@angular/core: 2.4.9
@angular/forms: 2.4.9
@angular/http: 2.4.9
@angular/platform-browser: 2.4.9
@angular/platform-browser-dynamic: 2.4.9
@angular/router: 3.4.9

今天我创建了一个heroku应用程序,我一直在尝试使用heroku CLI在其上部署应用程序。我已按照here的步骤进行操作。

虽然它在我的MAC上正确编译,但在heroku上它会产生很多错误,其中最常见的错误是:

ERROR in /tmp/build_56020fc9198e03c2d2338a818aaf8e5d/src/$$_gendir/app/admin/configuration/email-templates/email-template-form/email-template-form.component.ngfactory.ts (589,18): Property 'loadingOverlay' is private and only accessible within class 'BaseComponent'.

以下是package.json中的软件包版本:

"dependencies": {
    "@angular/cli": "1.0.0-beta.30",
    "@angular/common": "2.4.9",
    "@angular/compiler-cli": "2.4.9",
    "@angular/compiler": "2.4.9",
    "@angular/core": "2.4.9",
    "@angular/forms": "2.4.9",
    "@angular/http": "2.4.9",
    "@angular/platform-browser": "2.4.9",
    "@angular/platform-browser-dynamic": "2.4.9",
    "@angular/router": "3.4.9",
    "@types/jquery": "^2.0.40",
    "@types/node": "^6.0.62",
    "rxjs": "^5.0.1",
    "typescript": "2.0.10"
  },
  "devDependencies": {
      "@angular/cli": "1.0.0-beta.30",
      "@angular/compiler-cli": "2.4.9",
      "@types/jasmine": "2.5.38",
      "@types/jquery": "^2.0.40",
      "@types/node": "^6.0.42",
      "typescript": "2.0.10"
  }

还有更多,但我只包括相关的那些。

1 个答案:

答案 0 :(得分:1)

我终于得到了解决方案。 Heroku缓存所有NPM包(它对Bower也是如此。

如果您在更改package.json中的版本后部署应用程序,则heroku不会下载新版本,而是使用缓存版本。

要强制Heroku下载软件包而不是使用缓存软件包,请执行以下操作:

$ heroku config:set NODE_MODULES_CACHE=false
$ git commit -am 'disable node_modules cache' --allow-empty
$ git push heroku master

如果成功推送后你可以取消设置,否则,每次推送后它都会下载package.json中列出的所有包。

$heroku config:set NODE_MODULES_CACHE=true