如何设置Gruntfile在heroku上使用指南针/ sass?

我已经用grunt buildpack成功设置了我的heroku应用程序。 当我将我的Node.js应用程序推送到heroku时,它将运行适当的grunt任务。

我想要的是使用“grunt-contrib-compass”包来编译我的.scss文件。 但是那需要指南针的可执行文件,我不知道该怎么做。

我已经检查过heroku文档,并且看到过时的文档描述了用ruby设置指南针 …但是我还没有看到任何最近的文档用于设置Node.js。

有任何想法吗?

这花了很多心思,但我终于设法得到它的工作。 需要的是让Ruby与Node.js应用程序一起安装,以便安装适当的gem。 这个要点非常有帮助,并且或多或less地描述了我需要做的事情。

总之,这个过程是:

  • 在项目目录下创build文件.buildpacksGemfileGemfile.lock ,内容如下:

.buildpacks

 https://github.com/heroku/heroku-buildpack-ruby.git https://github.com/heroku/heroku-buildpack-nodejs.git 

的Gemfile

 source "http://rubygems.org" gem "sass" 

Gemfile.lock的

 GEM remote: http://rubygems.org/ specs: sass (3.4.5) PLATFORMS ruby DEPENDENCIES sass 

NB。 我只使用Sass,而不是Compass,但是我猜测你需要做的所有事情就是将指南针添加到Gemfile中,例如。 compass (1.0.3)在Gemfile.lock的sass下面。

  • 添加一个多buildpack到你的应用程序:

    heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git

  • 最后,将这些推送到Heroku,Ruby和Sass应该与Node.js应用程序一起安装,从而允许您使用与sass有关的grunt任务。

有一个包括指南针安装的分叉。 这可能有所帮助:

https://github.com/stephanmelzer/heroku-buildpack-nodejs-grunt-compass

我使用grunt-sass而不是grunt-contrib-sass让我的应用程序在heroku上工作。 要把它们交换出来,只需要执行npm install --save grunt-sass ,然后在任何地方使用grunt-task(例如grunt.loadNpmTasks('grunt-sass')而不是grunt.loadNpmTasks('grunt-contrib-sass')