Javascript 在heroku上运行angular应用程序时出现应用程序错误
我已成功地将angular2应用程序部署到heroku,但不幸的是,我收到了“应用程序中发生错误,无法为您的页面提供服务”页面显示 当我使用Javascript 在heroku上运行angular应用程序时出现应用程序错误,javascript,angular,heroku,npm,Javascript,Angular,Heroku,Npm,我已成功地将angular2应用程序部署到heroku,但不幸的是,我收到了“应用程序中发生错误,无法为您的页面提供服务”页面显示 当我使用npm start在本地运行应用程序时,它运行良好 我认为这可能与依赖关系或heroku实例具有不同的配置有关。我已尝试修改start命令,但无效 该项目基于找到的angular quickstart指南构建 My package.json文件 { "name": "danoram-angular-quickstart", "version": "1
npm start
在本地运行应用程序时,它运行良好
我认为这可能与依赖关系或heroku实例具有不同的配置有关。我已尝试修改start命令,但无效
该项目基于找到的angular quickstart指南构建
My package.json文件
{
"name": "danoram-angular-quickstart",
"version": "1.0.0",
"scripts": {
"start": "npm run lite",
"lite": "lite-server"
},
"license": "MIT",
"dependencies": {
"@angular/common": "~2.3.0",
"@angular/compiler": "~2.3.0",
"@angular/core": "~2.3.0",
"@angular/forms": "~2.3.0",
"@angular/http": "~2.3.0",
"@angular/platform-browser": "~2.3.0",
"@angular/platform-browser-dynamic": "~2.3.0",
"@angular/router": "~3.3.0",
"@angular/upgrade": "~2.3.0",
"angular-in-memory-web-api": "~0.1.16",
"core-js": "^2.4.1",
"reflect-metadata": "^0.1.8",
"rxjs": "5.0.0-rc.4",
"zone.js": "^0.7.2"
},
"devDependencies": {
"concurrently": "^3.0.0",
"lite-server": "^2.2.2",
"webpack": "^1.14.0"
}
}
heroku日志
2016-12-20T05:55:10.169815+00:00 app[web.1]: npm ERR! Failed at the danoram-angular-quickstart@1.0.0 lite script 'lite-server'.
2016-12-20T05:55:10.170077+00:00 app[web.1]: npm ERR! Make sure you have the latest version of node.js and npm installed.
2016-12-20T05:55:10.170162+00:00 app[web.1]: npm ERR! If you do, this is most likely a problem with the danoram-angular-quickstart package,
2016-12-20T05:55:10.170243+00:00 app[web.1]: npm ERR! not with npm itself.
2016-12-20T05:55:10.170321+00:00 app[web.1]: npm ERR! Tell the author that this fails on your system:
2016-12-20T05:55:10.170401+00:00 app[web.1]: npm ERR! lite-server
2016-12-20T05:55:10.170464+00:00 app[web.1]: npm ERR! You can get information on how to open an issue for this project with:
2016-12-20T05:55:10.170538+00:00 app[web.1]: npm ERR! npm bugs danoram-angular-quickstart
2016-12-20T05:55:10.170618+00:00 app[web.1]: npm ERR! Or if that isn't available, you can get their info via:
2016-12-20T05:55:10.170696+00:00 app[web.1]: npm ERR! npm owner ls danoram-angular-quickstart
2016-12-20T05:55:10.170790+00:00 app[web.1]: npm ERR! There is likely additional logging output above.
2016-12-20T05:55:10.173933+00:00 app[web.1]:
2016-12-20T05:55:10.174095+00:00 app[web.1]: npm ERR! Please include the following file with any support request:
2016-12-20T05:55:10.174171+00:00 app[web.1]: npm ERR! /app/npm-debug.log
2016-12-20T05:55:10.183775+00:00 app[web.1]:
2016-12-20T05:55:10.191217+00:00 app[web.1]: npm ERR! Linux 3.13.0-105-generic
2016-12-20T05:55:10.191388+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2016-12-20T05:55:10.191531+00:00 app[web.1]: npm ERR! node v6.9.1
2016-12-20T05:55:10.191647+00:00 app[web.1]: npm ERR! npm v3.10.8
2016-12-20T05:55:10.191761+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2016-12-20T05:55:10.191855+00:00 app[web.1]: npm ERR! danoram-angular-quickstart@1.0.0 start: `npm run lite`
2016-12-20T05:55:10.191943+00:00 app[web.1]: npm ERR! Exit status 1
我还将项目代码放在github上以供参考
感谢您的帮助 没有后端,您无法将应用部署到heroku。我认为,使用
angular2
应用程序的最佳后端选择是nodejs
/express
框架
Heroku将查看package.json的开始脚本,该脚本应该类似于:
"scripts": {
"start": "node app.js"
}
我的建议是将项目包装在一个文件夹中(比如说client文件夹),然后在新的根目录中创建另一个package.json和一个app.js文件
package.json:
{
"name": "basictemplate",
"version": "1.0.0",
"description": "",
"main": "web.js",
"scripts": {
"start": "node app.js",
"test": "echo \"Error: no test specified\" && exit 1",
"heroku-prebuild": "echo This runs before Heroku installs your dependencies.",
"heroku-postbuild": "npm install --prefix ./client"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.13.3",
"express": "^4.13.3"
},
"engines": {
"node": "4.1.1"
}
}
var express = require('express');
var app = express();
var server = require('http').Server(app);
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}) );
app.use( express.static(__dirname + '/client' ) );
var listener = server.listen(process.env.PORT || 5000, function(){
console.log('Listening on port ' + listener.address().port); //Listening on port 5000
});
app.js:
{
"name": "basictemplate",
"version": "1.0.0",
"description": "",
"main": "web.js",
"scripts": {
"start": "node app.js",
"test": "echo \"Error: no test specified\" && exit 1",
"heroku-prebuild": "echo This runs before Heroku installs your dependencies.",
"heroku-postbuild": "npm install --prefix ./client"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.13.3",
"express": "^4.13.3"
},
"engines": {
"node": "4.1.1"
}
}
var express = require('express');
var app = express();
var server = require('http').Server(app);
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}) );
app.use( express.static(__dirname + '/client' ) );
var listener = server.listen(process.env.PORT || 5000, function(){
console.log('Listening on port ' + listener.address().port); //Listening on port 5000
});
更多信息:由于未安装
lite服务器
,所以出现错误@echonax!这也确实帮助了我的理解:DI对您的解决方案进行了编辑,只是为了向端口添加一个侦听器。工作起来像一个机器人charm@Danoram啊,谢谢。我忘了那部分:)很高兴我能帮上忙。我可以用ng serve
来运行它吗?