Подтвердить что ты не робот

Как настроить Gruntfile для использования compass/sass на heroku?

Я успешно создал приложение heroku с grunt buildpack. Когда я нажимаю свое приложение Node.js на герою, он запускает соответствующую задачу grunt.

Я хотел бы использовать пакет "grunt-contrib-compass" для компиляции моих .scss файлов. Но для этого требуется компас, и я не знаю, как это получить.

Я проверил документацию heroku и увидел устаревший документ который описывает настройку компаса с ruby ​​... но я не видел никакой недавней документации для установив его с помощью Node.js.

Любые идеи?

4b9b3361

Ответ 1

Это заняло много времени, но мне, наконец, удалось заставить его работать. Необходимо, чтобы Ruby установил рядом с вашим приложением Node.js, чтобы вы могли установить соответствующие драгоценные камни. Этот смысл был очень полезным и более или менее описывает то, что мне нужно было сделать.

Таким образом, процесс был следующим:

  • Создайте файлы .buildpacks, Gemfile и Gemfile.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

пь. Я использую только Sass, а не Compass, но я предполагаю, что все, что вам нужно сделать, чтобы заставить компас просто добавить gem "compass" в Gemfile и, например. compass (1.0.3) ниже sass в Gemfile.lock.

  • Добавьте в приложение несколько buildpack:

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

  • Наконец, подтолкните их к Heroku, а Ruby и Sass должны установить рядом с вашим приложением Node.js, что позволит вам использовать связанные с sass задания grunt.

Ответ 3

Я получил приложение, использующее герою, используя grunt-sass вместо grunt-contrib-sass. Чтобы заменить их, просто npm install --save grunt-sass, а затем замените задачу grunt везде, где она используется (например, grunt.loadNpmTasks('grunt-sass') вместо grunt.loadNpmTasks('grunt-contrib-sass')