我有一个角度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"
}
还有更多,但我只包括相关的那些。
答案 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