質問
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ユーザでは無く他のユーザでも処理が行えるようにしたいのです。
丸一日ハマりましたが、解決方法が見いだせないでいます。。。
長文となってしまい大変申し訳ございません。どなたがご教授いただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/15 11:34