【问题标题】:Gulp folder compilingGulp 文件夹编译
【发布时间】:2015-04-15 10:43:58
【问题描述】:

我对 gulp 比较陌生。当我尝试用子文件夹及其 sass 文件编译一个目录时,我遇到了一个问题。

文件夹结构:

|_sass
   |__folder1
   |   |_file.sass
   |__folder2
   |   |_file.sass
   |__folder3
       |_file.sass

我尝试编译的简单 gulp 任务

gulp.task('sass', function(){
  return sass('sass/')
    .pipe(gulp.dest('css');
}

上面的这个任务不适用于文件夹,但是如果我在下面的 gulp 任务中指定文件,它可以正常工作。

gulp.task('sass', function(){
  return sass('sass/folder1/file1.sass')
    .pipe(gulp.dest('css');
}

我已经检查了 repository (gulp-ruby-sass) 和 stackoverflow 中的其他主题的文档,我发现的一种解决方案是将所有 sass 代码导入一个文件并编译它。

我尝试了不同的路径:./sasssasssass/,甚至最后一个语法 gulp.src(path/**/*.sass)gulp-sass 存储库也是如此。

你能帮帮我吗? 提前致谢

【问题讨论】:

  • 我正在使用 webstorm 和 gulpfile.js
  • 您找到的解决方案是正确的。创建一个主 sass 文件并导入您要使用的所有文件。
  • 因此,如果我想将我的最终 css 分成两部分用于我的应用程序的不同部分,我需要两个 gulp 任务吗?我认为这不是办法。
  • 哦,所以您希望输出为 file1.css、file2.css 等?
  • 是的。我想要不同的CSS。现在是一个简单的例子,但在我的应用程序中,我需要不同的最终 css。也许两三个。

标签: sass gulp gulp-ruby-sass


【解决方案1】:

编辑:使用gulp-sass,而不是gulp-ruby-sass,因为gulp-ruby-sass 只支持单个文件,如docs 中所述:

gulp-ruby-sass 还不支持 glob,只支持单个文件或目录。就像萨斯一样。

您应该使用有效的全局参数gulp.src() 创建一个流,而不是直接调用sass() 并在pipe() 中调用它:

gulp.task('sass', function (){
  return gulp.src([
    'sass/folder1/file.sass',
    'sass/folder2/file.sass',
    'sass/folder3/file.sass'
  ])
    .pipe(sass())
    .pipe(gulp.dest('css'));
});

如果您只想导入的文件名称正确(以下划线开头),这应该也可以:

gulp.task('sass', function (){
  return gulp.src('sass/**/*.sass')
    .pipe(sass())
    .pipe(gulp.dest('css'));
});

编辑:修复了一些代码错误 - 所以需要一个 linter (;

【讨论】:

  • 嗨,我不知道 'globs' 是什么意思,但几句话之后,它会加上“或目录”。我当时理解得很糟糕。所以我尝试了你用一个常见错误向我解释的过程,“path.join 的参数必须是字符串”。这就是我的结局,我仍在寻找,但我不知道如何处理这个错误。
  • 你能分享你更新的代码,但不能工作吗?
  • 我会在其他时间下班后尝试,我告诉你。但很简单,使用 gulp-ruby-sass 我无法编译目录,因为根据 naeramatrth7 帖子是不可能的。使用 gulp-sass 向我发送一个错误。
猜你喜欢
  • 1970-01-01
  • 2018-06-21
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
相关资源
最近更新 更多