[英]node - deploying app to heroku with git
我正在嘗試將我的應用程序部署到heroku,並且不斷收到此錯誤消息,提示它“無法檢測到應用程序匹配.......”,並且推送被拒絕。 我遵循了heroku網站上的說法,但我一直堅持只使用git push heroku master部分,我嘗試做一些研究,但找不到解決方案。
{
"name": "home-automation",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server/server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.15.3",
"johnny-five": "^0.11.3",
"socket.io": "^2.0.3"
}
}
Server.js
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var express = require("express");
var five = require("johnny-five");
var board = new five.Board({port:"COM4"});
const port = process.env.PORT || 3000;
app.use(express.static("public"))
io.on('connection', function (socket) {
console.log("New User Connected")
board.on("ready", function(){
socket.on("turnLightOn", function(data){
var led = new five.Led({
pin:"13"
});
if(data.status){
led.on();
}else{
led.off();
}
})
})
});
server.listen(port, function(){
console.log("Listening on port 3000")
});
index.js
var socket = io();
$("#toggle-light").on("click", function(){
$("#led").toggle();
if($("#led").css("display") == "none"){
var status = false
}else{
var status = true
}
socket.emit("turnLightOn", {
status
})
})
index.html
<html>
<head>
<title>Home Automation</title>
</head>
<body>
<h1>Home Automation</h1>
<button id="toggle-light">Toggle Light</button>
<div id="led" style="width:100px; height:100px; background:yellow;"></div>
<p id="moistureLevel"></p>
<script src="/socket.io/socket.io.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="/js/index.js"></script>
</body>
</html>
這意味着未將package.json文件檢入git項目的根目錄中,因此Heroku正在檢測到它不是Node.js應用程序。 您可以在本地看到此內容:
git show master:package.json
要修復它,您需要確保在項目的根目錄(還有一個.git目錄)中有一個package.json,並將其添加到git中:
git add package.json
git commit -m 'track package.json'
措辭(“無法檢測到設置的構建包”)可以得到改善。 它可能應該說“未能檢測到Node.js應用程序”。 運行buildpack的“檢測”腳本( https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect )時,它將查找package.json文件以驗證是否存在節點應用程序可以建造。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.