最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

将Node.JS应用程序部署到Heroku

IT培训 admin 5浏览 0评论

将Node.JS应用程序部署到Heroku

我正在尝试将我的应用程序推送到Heroku。我已经能够部署它几次,但现在我已经在我的packages.json文件中将mongoose从“> = 3.5.0”更新为“> = 3.6.0rc0”。但是,版本3.6需要mpath和mpromise。

当slug编译开始时,它使用缓存版本的mongoose或者什么,就像我的应用程序启动时,我得到“错误:无法找到模块'mpath'”。

我试图设置一个可以停止缓存的自定义buildpack Git,我只是注释掉了bin / compile中的缓存内容,可以在这里找到:

这是推送的输出:

此外,当我从package.json中删除一些依赖项时,如果我使用'heroku run bash'登录,我可以看到那些删除了node_modules中的依赖项。我已经尝试删除node_modules文件夹并执行另一个'git push',这也不起作用。那些被删除的deps仍然在node_modules中。

任何人都知道如何解决这个问题?

编辑:

这是我的package.json文件:

{
    "name": "souply-api",
    "version": "0.1.0",
    "author": "Jason Valdron <[email protected]>",
    "description": "Main gears that runs the Soup.ly application",
    "dependencies": {
        "bcrypt": ">= 0.7.3",
        "express": ">= 3.0.5",
        "extend": ">= 1.1.3",
        "imagemagick": ">= 0.1.3",
        "jade": ">= 0.27.7",
        "knox": ">= 0.4.6", 
        "less": ">= 1.3.1",
        "less-middleware": ">= 0.1.9",
        "moment": ">= 1.7.2",
        "mongoose": ">= 3.6.0rc0", 
        "mongoose-types": ">= 1.0.3",
        "node-native-zip": ">= 1.1.0",
        "nodemailer": ">= 0.3.37",
        "oauth2orize": ">= 0.1.0",
        "passport": ">= 0.1.15",
        "passport-local": ">= 0.1.6",
        "passport-google": ">= 0.2.0",
        "passport-facebook": ">= 0.1.4",
        "passport-twitter": ">= 0.1.4",
        "passport-http": ">= 0.2.1",
        "passport-http-bearer": ">= 0.2.0",
        "passport-oauth2-client-password": ">= 0.1.0",
        "poor-form": ">= 1.1.3",
        "request": ">= 2.12.0",
        "socket.io": ">= 0.9.13"
    },
    "engines": {
        "node": "0.8.x",
        "npm": "1.1.x"
    }
}

如前所述,Mongoose设置为3.6.0rc。 Mpath是Mongoose的package.json文件中的依赖项。如果我查看我的本地mongoose package.json文件,我可以看到:

"dependencies": {
    "hooks": "0.2.1"
  , "mongodb": "1.2.11"
  , "ms": "0.1.0"
  , "sliced": "0.0.3"
  , "muri": "0.3.0"
  , "mpromise": "0.2.0"
  , "mpath": "0.1.1"
}

此外,如果我使用heroku run bash登录,并导航到node_modules/mongoose/node_modules我看到mpath和mpromise不存在。

回答如下:

node_modules在Git仓库中。通过从回购中删除它,它工作正常。

将Node.JS应用程序部署到Heroku

我正在尝试将我的应用程序推送到Heroku。我已经能够部署它几次,但现在我已经在我的packages.json文件中将mongoose从“> = 3.5.0”更新为“> = 3.6.0rc0”。但是,版本3.6需要mpath和mpromise。

当slug编译开始时,它使用缓存版本的mongoose或者什么,就像我的应用程序启动时,我得到“错误:无法找到模块'mpath'”。

我试图设置一个可以停止缓存的自定义buildpack Git,我只是注释掉了bin / compile中的缓存内容,可以在这里找到:

这是推送的输出:

此外,当我从package.json中删除一些依赖项时,如果我使用'heroku run bash'登录,我可以看到那些删除了node_modules中的依赖项。我已经尝试删除node_modules文件夹并执行另一个'git push',这也不起作用。那些被删除的deps仍然在node_modules中。

任何人都知道如何解决这个问题?

编辑:

这是我的package.json文件:

{
    "name": "souply-api",
    "version": "0.1.0",
    "author": "Jason Valdron <[email protected]>",
    "description": "Main gears that runs the Soup.ly application",
    "dependencies": {
        "bcrypt": ">= 0.7.3",
        "express": ">= 3.0.5",
        "extend": ">= 1.1.3",
        "imagemagick": ">= 0.1.3",
        "jade": ">= 0.27.7",
        "knox": ">= 0.4.6", 
        "less": ">= 1.3.1",
        "less-middleware": ">= 0.1.9",
        "moment": ">= 1.7.2",
        "mongoose": ">= 3.6.0rc0", 
        "mongoose-types": ">= 1.0.3",
        "node-native-zip": ">= 1.1.0",
        "nodemailer": ">= 0.3.37",
        "oauth2orize": ">= 0.1.0",
        "passport": ">= 0.1.15",
        "passport-local": ">= 0.1.6",
        "passport-google": ">= 0.2.0",
        "passport-facebook": ">= 0.1.4",
        "passport-twitter": ">= 0.1.4",
        "passport-http": ">= 0.2.1",
        "passport-http-bearer": ">= 0.2.0",
        "passport-oauth2-client-password": ">= 0.1.0",
        "poor-form": ">= 1.1.3",
        "request": ">= 2.12.0",
        "socket.io": ">= 0.9.13"
    },
    "engines": {
        "node": "0.8.x",
        "npm": "1.1.x"
    }
}

如前所述,Mongoose设置为3.6.0rc。 Mpath是Mongoose的package.json文件中的依赖项。如果我查看我的本地mongoose package.json文件,我可以看到:

"dependencies": {
    "hooks": "0.2.1"
  , "mongodb": "1.2.11"
  , "ms": "0.1.0"
  , "sliced": "0.0.3"
  , "muri": "0.3.0"
  , "mpromise": "0.2.0"
  , "mpath": "0.1.1"
}

此外,如果我使用heroku run bash登录,并导航到node_modules/mongoose/node_modules我看到mpath和mpromise不存在。

回答如下:

node_modules在Git仓库中。通过从回购中删除它,它工作正常。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论