2

すべての bower パッケージを繰り返し処理したいと考えています。includePathsメインファイルとして sass ファイルを持っているものはすべて、 for gulp-sassに含めたいと考えています。

私は npm パッケージmain-bower-filesを使用して、メイン ファイルを正常に取得しています (そして、scss ファイルだけにフィルターをかけています)。

しかし、コンパイルに行くと、次のエラーが発生します(現在、ブートストラップしか持っていないためです):

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
Error: file to import not found or unreadable: bootstrap

私のgulpfileの関連部分は

var load_paths = bower({
  base: path.join(__dirname, "bower_components"),
  filter: '**/_*.scss'
});

gulp.src(app_css_file)
.pipe(sass({
    includePaths: load_paths
}))
.pipe(concat('app.css'))
.pipe(gulp.dest('build/css'));
4

1 に答える 1

1

私の問題は、ディレクトリではなくファイルmain-bower-filesを提供することであることが判明しました。当たり前。Node-sass には、インポート可能なファイルを含むディレクトリが必要です。

load_pathsだから私は私の少しを変更する必要があります。

for (var i=0; i<load_paths.length; i++){
  // we need to use the parent directories of the main files, not the files themselves
  // so ./bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss
  // becomes ./bower_components/bootstrap-sass-official/assets/stylesheets
  load_paths[i] = path.dirname(load_paths[i]);
}

そして、それはそれを修正しました。これが他の誰かに役立つことを願っています:)

于 2015-02-23T17:59:16.163 に答える