gulp(gulp-ruby-sass)でのsassコンパイルエラーについて
質問
gulpでsassをコンパイルしようとすると、下記エラーが発生します。
[RubySass] Error in plugin 'gulp-ruby-sass'
Message:
spawn ENOENT: Missing the Sass executable. Please install and make available on your PATH.
rootユーザでgulpを実行した際は上記エラーは出ませんが、他のユーザで実行した際はエラーが出ます。
処理の関係上、rootユーザ以外のユーザでgulpを行いたく、上記エラーの解決方法をご教授いただければと思います。
実行概要
OS : CentOS6.5
使用プラグイン:gulp-ruby-sass
gulpのタスクファイル
'use strict';
~~~~~ 中略 ~~~~~~~
gulp.task('styles', function () {
var sassOptions = {
style: 'expanded'
};
~~~~~ 中略 ~~~~~~~
return gulp.src([
path.join(conf.paths.src, '/app/index.scss')
])
.pipe($.inject(injectFiles, injectOptions))
.pipe(wiredep(_.extend({}, conf.wiredep)))
.pipe($.rubySass(sassOptions)).on('error', conf.errorHandler('RubySass'))
.pipe(cssFilter)
.pipe($.sourcemaps.init({ loadMaps: true }))
.pipe($.autoprefixer()).on('error', conf.errorHandler('Autoprefixer'))
.pipe($.sourcemaps.write())
.pipe(cssFilter.restore())
.pipe(gulp.dest(path.join(conf.paths.tmp, '/serve/app/')))
.pipe(browserSync.reload({ stream: true }));
});
Sassのインストール方法
[root@remote]$ sudo gem install sass
[root@remote]$ sass -v
Sass 3.4.18 (Selective Steve)
この状況で、rootユーザであればgulpを実行しても問題なく動作します。
[root@remote]$ sass -v
Sass 3.4.18 (Selective Steve)
[root@remote]$ gulp
[09:06:18] Using gulpfile /path/to/gulp/task/file
[09:06:18] Starting 'clean'...
[09:06:19] Finished 'clean' after 134 ms
[09:06:19] Starting 'default'...
[09:06:19] Starting 'scripts'...
[09:06:19] Starting 'styles'...
[09:06:20] Starting 'partials'...
[09:06:20] Starting 'fonts'...
[09:06:20] Starting 'other'...
[09:06:20] Finished 'default' after 1.81 s
[09:06:21] gulp-inject 3 files into index.scss.
[09:06:24] gulp-ruby-sass: directory <-------------- うまくいく
write index.css
write index.css.map
[09:06:25] Finished 'styles' after 6.16 s
~~~~~ 略 ~~~~~~~
ところが、別ユーザだと
[user1@remote]$ sass -v
Sass 3.4.18 (Selective Steve)
[user1@remote]$ sudo gulp
[09:09:37] Using gulpfile /path/to/gulp/task/file
[09:09:37] Starting 'clean'...
[09:09:37] Finished 'clean' after 155 ms
[09:09:37] Starting 'default'...
[09:09:37] Starting 'scripts'...
[09:09:37] Starting 'styles'...
[09:09:38] Starting 'partials'...
[09:09:38] Starting 'fonts'...
[09:09:39] Starting 'other'...
[09:09:39] Finished 'default' after 1.84 s
[09:09:39] gulp-inject 3 files into index.scss.
[09:09:39] [RubySass] Error in plugin 'gulp-ruby-sass' <-------------- 失敗
Message:
spawn ENOENT: Missing the Sass executable. Please install and make available on your PATH.
[09:09:39] Finished 'styles' after 2.04 s
~~~~~ 略 ~~~~~~~
となります。
他にも、sassをbundleインストール後、gulpタスクファイルでbundle exec
をtrue
に、てbundleでsassを呼び出す方法も試しましたが、同じエラーが出てきました。
gulpでの処理は、capistranoでdeployユーザとして行うため、rootユーザでは無く他のユーザでも処理が行えるようにしたいのです。
丸一日ハマりましたが、解決方法が見いだせないでいます。。。
長文となってしまい大変申し訳ございません。どなたがご教授いただけると幸いです。