我试图让gulp-compass在我的Debian linux上工作,但收到一条错误消息,指出Ruby和Compass必须在路径中。 在Gulp方面,我还是一个初学者,所以我可能很愚蠢。

以下是运行在Gulpfile中创建的任务时得到的确切错误消息:

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: You need to have Ruby and Compass installed and in your system PATH for this task to work.

Process finished with exit code 1

我浏览了其他类似的问题,这些问题建议您使用gem install compassgem install sass但似乎都不适合我。

我的Gulpfile如下:

var gulp = require('gulp'),
compass = require('gulp-compass');

gulp.task('stylesheets', function(){
    return gulp.src('**/*.scss')
        .pipe(compass({
            config_file: './config.rb',
            css: 'css',
            sass: 'sass'
        }))
        .pipe(gulp.dest('css'));
});

我可以运行ruby -vcompass -v我可以看到它们正确地位于我的路径中,并且执行echo $PATH显示,Ruby肯定在那里。

我想知道用RVM安装ruby还是我在使用Bundler在项目中安装gems是一个问题。 我的Gemfile如下:

source 'https://rubygems.org'
gem 'susy'
gem 'compass'
gem 'breakpoint'

我已经用bundle install安装了gems,还尝试了bundle_exec: true -compass中的bundle_exec: true选项(尽管说实在的,我真的不知道这不是一个Bundler专家的意思)。 我尝试重新安装Ruby。

有谁知道为什么我收到上述错误消息吗? 与Grunt进行类似操作时,我从未遇到过这样的错误。

===============>>#1 票数:0

我终于设法解决了这个问题。 我用rvm implode卸载了RVM,然后使用常规的apt-get install ruby再次apt-get install ruby

一旦完成此操作,一切正常。 我不得不对我的gulpfile进行细微调整,现在是这样:

var gulp = require('gulp'),
compass = require('gulp-compass');

gulp.task('stylesheets', function(){
    console.log();
    return gulp.src('sass/**/*.scss')
        .pipe(compass({
            config_file: './config.rb',
            css: 'css',
            sass: 'sass'
        }))
        .pipe(gulp.dest('css'));
});

这并不是一个理想的选择,因为当当前的稳定发行版(在撰写本文时)为2.2.2时,我现在仍然使用旧版本的Ruby(红宝石2.1.5p273)。 我宁愿使用RVM,但是现在可以使用。

  ask by Jonny Irwin translate from so

未解决问题?本站智能推荐:

1回复

样式表必须位于sass目录中,且带有gulp-compass错误

我正在将一个grunt项目转换为gulp,并且在gulp-compass时遇到问题。 我们将scss文件分散在源代码中,而不是全部分散在一个目录中。 该结构对于该项目很重要,并且不能更改。 我以为我会尝试以类似grunt项目的方式来设置配置,但是a)我感到困惑,为什么它期望一个目录
1回复

Gulp罗盘没有将sass编译为css

在这里,我尝试在命令提示符下运行gulp罗盘。.它正在执行,但未在所需的目标位置产生输出。.请帮助
1回复

Angular 2种子 - 如何在sass文件中启用指南针支持

我将这个种子项目用于我的Angular 2应用程序。 我的目标是在所有sass文件中使用指南针混合和函数。 在这一刻,当我尝试使用@import'指南针'时,它根本无法进行导入。 我有最新的SASS和COMPASS宝石。 我想这样做我需要一些config.rb但我不知道如
1回复

防止在配管时输出中间罗盘文件

我正在使用gulp gulp-compass来编译scss文件。 但是,我将输出串联到一个文件中。 一切正常,但是我注意到罗盘本身正在将单个文件写入输出目录。 我剩下的是单个文件以及连接的结果。 有什么办法可以防止中间输出?
3回复

压缩SCSS文件时,指南针会删除分号,从而导致CSS导入问题

这是我第一次尝试Compass,遇到了有关Compass如何压缩SCSS文件的问题。 我有一个简单的.scss文件,其中包含以下代码: 我设置了一个Gulp任务来编译文件,这是任务: 这是我的config.rb : 所以我将output_style设置为:compr
1回复

未找到Susy2文件或无法读取的Susy2文件,通过Gulp与Compass一起编译

让Compass和Susy在Gulp下一起工作-令人沮丧。 除非我手动导入文件(使用Susy文档中的“手动开始”说明),否则似乎无法使Susy 2使用gulp和罗盘。 (我之前曾问过一次,但是找不到任何相关信息...这对我来说是跨多个开发环境的一个持续问题,因此我要再次询问尽可能多的
1回复

如何将由gulp-compass编译的文件放入gulp的流中?

我是gulp和gulp-compass的新手。 恕我直言,gulp-compass在gulp的流范例中不起作用。 通常,gulp的任务应类似于: 但是以下代码适用于gulp-compass: 这导致了我下面的问题。 我想使用app.scss gulp-compas
1回复

gulp-autoprefixer是否可以与gulp-compass一起使用?

如果我用gulp-ruby-sass编译scss,则gulp-autoprefixer可以工作,但是如果用gulp-compass autoprefixer进行编译,则不能工作。 这是代码: watch任务可以正常工作, watch2任务可以编译scss,但不能使用autoprefix
1回复

Material-ui仅通过Gulp-compass在Safari中不起作用

我正在使用material-ui lib来反应组件,scss端口material-ui-sass 请在Safari(移动设备和台式机)上查看以下屏幕截图。 他们可以在Chrome,Firefox,甚至Opera中运行,但不能在Safari中运行。 是否有人暗示错误可能在哪里?
1回复

使用gulp-compass时出现“错误:生成/ usr / bin / compass ENOENT”

我正在尝试在OS X Yosemite 10.5.5上使用插件gulp-compass运行以下Gulp任务来编译Sass文件。 但是,当我尝试运行gulp compile2013Base类的任务时,出现以下错误: 我已经在/ usr / bin / compass中安装了指南针,