2017-07-19 68 views
0

enter image description hereenter image description here我正在尝试将我的应用部署到heroku,并且我不断收到此错误消息,指出它“未能检测到应用匹配.......”,并且推送是拒绝。我遵循它在heroku网站上所说的方式,并且我一直只停留在那个git push heroku主部分上我试图做一些研究,我找不到解决方案。 enter image description here节点 - 使用git将应用部署到heroku

{ 
    "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> 

回答

1

这意味着一个package.json文件没有被检入你的git项目的根目录,所以Heroku检测到它不是一个Node.js应用程序。您可以在本地看到:

git show master:package.json 

要解决这个问题,你要确保没有在你的项目的根目录中的package.json(其中也有一个.git目录),并将其添加git:

git add package.json 
git commit -m 'track package.json' 

可以改善措词('未检测到set buildpack')。它可能应该说'未能检测到Node.js应用程序'。当buildpack的“检测”脚本运行时(https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect),它会查找一个package.json文件来验证是否有可用的节点应用程序。

+0

这确实有助于部署到heroku,但我得到一个应用程序错误,它将我引用​​到我的构建日志(构建日志太长以至于无法评论) –

+0

也许您可以向我展示它的一点点像“Error:Can not find module bla bla bla“也许你忘了一些模块添加到package.json –

+0

我在 –

相关问题