我用angular cli ng build命令构建了一个angular 2应用程序,它创建了dist文件夹。
为了部署它,我遵循了这个教程Deploy angular 2 app to heroku
当我按照所有步骤操作时,我输入了heroku open
,但得到了一个应用程序错误
ng: not found
日志
这是我的package.json文件,如果你想看的话
这似乎是angular-cli和他的命令ng的问题,但在我的package.json中我有这个问题
`{
"name": "rusticstock",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"start": "http-server",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor",
"preinstall": "npm install -g http-server",
"postinstall": "ng build && mv dist/* ."
},
"private": true,
"dependencies": {
"angular-cli": "1.0.0-beta.16",
"@angular/common": "2.0.2",
"@angular/compiler": "2.0.2",
"@angular/core": "2.0.2",
"@angular/forms": "2.0.0",
"@angular/http": "2.0.0",
"@angular/platform-browser": "2.0.2",
"@angular/platform-browser-dynamic": "2.0.2",
"@angular/router": "3.0.0",
"core-js": "^2.4.1",
"bootstrap": "^3.3.6",
"ng2-bs3-modal": "^0.10.4",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23",
"@types/jasmine": "^2.2.30",`enter code here`
"codelyzer": "~0.0.26",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "4.0.9",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "2.0.2"
},
"devDependencies": {
},
"engines": {
"node": "6.6.0",
"npm": "3.10.3"
}
}
`
还有一件事,当我部署时,我看到安装了像@angular/common这样的组件……但不是所有人。
任何建议都将不胜感激。
发布于 2016-10-21 04:31:36
我的问题是,我在另一个分支机构工作,而heroku只在主分支机构取得进展。
发布于 2017-05-10 10:15:14
看起来你的heroku应用实例没有安装angular-cli。我找到了安装它的方法。
在JSON包中,添加preinstall命令,如下所示
"scripts": {
"start": "http-server",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor",
"preinstall": "npm install -g angular-cli",
"postinstall": "ng build && mv dist/* ."
},
这将在heroku服务器上安装angular-cli,并且您不会得到ng命令未找到相关错误。
发布于 2019-05-15 03:36:14
当"git push heroku master“正在运行时,heroku运行package.json文件。但是,在默认情况下,Heroku将只安装依赖项对象中列出的包,而忽略devDependencies中的包。因为我们希望应用程序的构建步骤发生在服务器上,而不是本地机器上,所以我们需要稍微调整一下package.json文件。
Angular CLI应用程序将@angular/cli模块本身作为一个dev依赖项,这意味着我们将无法访问服务器上的任何ng命令。为了解决这个问题,我们需要将它移到依赖项中。
// package.json
"dependencies": {
// ...
"@angular/cli": "7.3.9",
},
https://stackoverflow.com/questions/39984626
复制相似问题