【问题标题】:Heroku - Express App - Error: spawn compass ENOENTHeroku - Express 应用程序 - 错误:生成罗盘 ENOENT
【发布时间】:2015-03-14 16:03:56
【问题描述】:

我正在使用由官方 express 生成器生成的应用程序,以及 heroku 上的 CEDAR 堆栈。

当我尝试访问样式表时出现以下错误 (/stylesheets/style.css) 所有其他静态资产都可以正常加载,样式表的 sass 版本 (/stylesheets/style.scss) 也是如此。

可能是什么问题?

2015-03-09T22:27:54.648677+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/stylesheets/style.css" host=**.herokuapp.com request_id=c29b6d81-3dae-4e3f-a35a-53f3dea3fb48 fwd="80.244.17.16" dyno=web.1 connect=0ms service=167ms status=503 bytes=0
2015-03-09T22:27:54.589437+00:00 app[web.1]: events.js:85
2015-03-09T22:27:54.589449+00:00 app[web.1]:     at Process.ChildProcess._handle.onexit (child_process.js:1046:32)
2015-03-09T22:27:54.589447+00:00 app[web.1]:     at exports._errnoException (util.js:746:11)
2015-03-09T22:27:54.589444+00:00 app[web.1]:             ^
2015-03-09T22:27:54.589442+00:00 app[web.1]:       throw er; // Unhandled 'error' event
2015-03-09T22:27:54.589446+00:00 app[web.1]: Error: spawn compass ENOENT
2015-03-09T22:27:54.589452+00:00 app[web.1]:     at process._tickCallback (node.js:355:11)
2015-03-09T22:27:54.671202+00:00 app[web.1]: 
2015-03-09T22:27:54.589451+00:00 app[web.1]:     at child_process.js:1137:20

【问题讨论】:

  • 您好,您使用的是 node-compass 中间件吗?
  • 那么这与这个错误github.com/nathggns/node-compass/issues/34有关。 Compass gem 应该安装在您的主机上,以便 node-compass 工作
  • Heroku 支持建议添加此构建包 https://github.com/stephanmelzer/heroku-buildpack-nodejs-grunt-compass,但我仍然收到该错误。
  • 我不知道 Heroku 究竟是如何工作的,但在我看来很难微调安装的软件。您可能会考虑部署到云服务,您将获得更多控制权。我发现DigitalOcean 非常好用。

标签: heroku express compass


【解决方案1】:

经过大量的故障排除后,我终于找到了问题的根源。

  • heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
  • 在根目录下创建一个名为.buildpacks的文件并添加如下https://github.com/heroku/heroku-buildpack-nodejs.githttps://github.com/heroku/heroku-buildpack-ruby.git
  • 在根目录下创建一个名为Gemfile的文件并添加 source "https://rubygems.org" gem "compass"
  • 由于 heroku 无法正确填充 Gemfile.lock,您还必须创建一个名为 Gemfile.lock 的文件并运行 bundle install
  • 推送到 heroku 和 node-compass 工作 :)

【讨论】:

  • 太棒了!你能分享你在哪里找到这一切吗?这解决了我的问题。我想知道我们是否可以将其 PR 到 express 生成器中,因为它很麻烦。
  • @JDillon522 我进行了很多搜索,这是通过从错误到错误得出的
  • @StefanosChrs 这也适用于我。我只是使用带有"postinstall": "grunt build" 步骤的SASS。我不得不切换顺序并先安装 ruby​​,但一切都运行良好。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 1970-01-01
  • 2020-03-06
  • 2017-08-31
  • 2016-10-07
  • 2015-03-12
  • 1970-01-01
相关资源
最近更新 更多