【问题标题】:Deploying Sails.js project to Google cloud: "Fatal error: Unable to find local grunt."将 Sails.js 项目部署到 Google 云:“致命错误:无法找到本地咕噜声。”
【发布时间】:2015-09-16 04:57:22
【问题描述】:

我正在尝试将sails.js 项目部署到谷歌云。 运行gcloud preview app deploy app.yaml --set-default 后,部署似乎成功但是当我浏览到我的项目时,我看到的只是

错误:服务器错误

您请求的服务尚不可用。 请在 30 秒后重试。

console.developers.google.com 的日志显示“致命错误:无法找到本地 grunt。”我应该在 Google 云上配置一些东西以使 grunt 可用吗?或者我应该在我的项目中配置什么来让云找到 grunt?

我已经能够从 https://cloud.google.com/nodejs/ 成功部署演示项目,但不能成功部署使用 Sails.js 的项目。


更新:已解决

问题是通过在本地安装 grunt 和 grunt-cli 以及一堆其他依赖项来解决的。 任何有相同问题的人都可以这样做:

确保 package.json 文件包含以下依赖项:

"dependencies": {
"express": "^4.12.0",
"gcloud": "^0.15.0",
"grunt": "^0.4.5",
"grunt-cli": "^0.1.13",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-coffee": "^0.13.0",
"grunt-contrib-concat": "^0.5.1",
"grunt-contrib-copy": "^0.8.0",
"grunt-contrib-cssmin": "^0.12.3",
"grunt-contrib-jst": "^0.6.0",
"grunt-contrib-less": "^1.0.1",
"grunt-contrib-uglify": "^0.9.1",
"grunt-contrib-watch": "^0.6.1",
"grunt-gcloud": "^0.2.0",
"grunt-sails-linker": "^0.10.1",
"grunt-sync": "^0.2.3",
"sails": "^0.11.0",
"sails-disk": "^0.10.8"
}

然后在部署前安装所有依赖:

 sudo npm install --save

【问题讨论】:

    标签: node.js gruntjs sails.js google-cloud-platform gcloud


    【解决方案1】:

    您的应用可能希望使用 Grunt 来启动网络服务器。使用 Grunt 的 node.js web-apps 的一个常见范例是运行类似 grunt serve 的东西来启动 web 服务器(类似 app.js 或 bin/www.js 的东西)。您的应用程序容器上没有运行任何网络服务器这一事实是您看到消息的原因。由于您的 Dockerfile 未安装 Grunt,因此无法访问 Grunt(因此 serve 命令无法运行)。

    Make your Dockerfile install Grunt。你会install Grunt using npm

    一般来说,为避免陷入此类陷阱,您应该了解运行您的网络应用程序的整个堆栈,即使只是粗略的概述,这样识别此类故障变得更加容易。

    【讨论】:

    • 如果解决了问题,请告诉我,如果是,请接受答案,因为我不想在没有确保你得到帮助的情况下从这个线程继续前进!
    • 啊,我刚刚看到您通过在部署之前预先打包依赖项来修复它,因此它们已经存在。干杯!
    • (请注意,您可以删除所有 node_modules/ 并使用 Dockerfile 运行 npm install,这将使您的代码从您的盒子中更快地部署,但会增加所需的时间,一次部署,服务。这完全取决于你想做什么:)
    猜你喜欢
    • 2013-03-07
    • 2014-07-25
    • 2013-08-05
    • 2012-12-05
    • 1970-01-01
    • 2015-10-26
    • 2015-05-25
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多