热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用Gulp在不同的目录中编译SASS文件?

如何解决《如何使用Gulp在不同的目录中编译SASS文件?》经验,为你挑选了2个好方法。

我正在使用gulp-ruby-sass编译我的js和sass.

我首先遇到了这个错误TypeError: Arguments to path.join must be strings

找到了这个答案,这是因为我使用的是源代码和gulp -sass,建议使用gulp-ruby-sass代替.

接下来,我尝试使用以下语法编译所有SASS文件:

gulp.task('sass', function () {
    return sass('public/_sources/sass/**/*.scss', { style: 'compressed' })
        .pipe(sourcemaps.init())
        .pipe(concat('bitage_public.css'))
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest('public/_assets/css'))
        .pipe(livereload());
});

哪个产生了这个错误: gulp-ruby-sass stderr: Errno::ENOENT: No such file or directory - public/_sources/sass/**/*.scss

然后我在答案中注意到我发现作者写道**尚未支持地球仪:

另外请记住,在撰写本文时,使用gulp-ruby-sass 1.0.0-alpha时,还不支持globs.

我做了更多的挖掘,并找到了一种方法来使用数组来指定我的SASS文件的路径,所以我尝试了以下内容:

gulp.task('sass', function () {
    return sass(['public/_sources/sass/*.scss',
             'public/_sources/sass/layouts/*.scss',
             'public/_sources/sass/modules/*.scss',
             'public/_sources/sass/vendors/*.scss'], { style: 'compressed' })
    // return sass('public/_sources/sass/**/*.scss', { style: 'compressed' })
    .pipe(sourcemaps.init())
    .pipe(concat('bitage_public.css'))
    .pipe(sourcemaps.write('./maps'))
    .pipe(gulp.dest('public/_assets/css'))
    .pipe(livereload());
});

但我仍然得到Errno::ENOENT: No such file or directory它,它列出了我放入该阵列的所有目录.

如何使用gulp在多个目录中编译SASS?

SASS源文件夹结构:

_sources
    layouts
        ...scss
    modules
        ...scss
    vendors
        ...scss
    main.scss

Leon Gaban.. 7

弄清楚了!

不是100%,仍然不确定为什么多路径数组不起作用.

无论如何我忘了在我的主web.scss文件中我已经设置了多个import语句:

@import "vendors/normalize";    // Normalize stylesheet
@import "modules/reset";        // Reset stylesheet
@import "modules/base";         // Load base files
@import "modules/defaults";     // Defaults
@import "modules/inputs";       // Inputs & Selects
@import "modules/buttons";      // Buttons
@import "modules/layout";       // Load Layouts
@import "modules/svg";          // Load SVG
@import "modules/queries";      // Media Queries

所以我实际上并不需要尝试按照我尝试的方式使用Gulp,我只需要.scss直接定位该1个文件.所以我在这做了:

// Compile public SASS
gulp.task('sass', function () {
return sass('public/_sources/sass/bitage_web.scss', { style: 'compressed' })
    .pipe(sourcemaps.init())
    .pipe(sourcemaps.write('./maps'))
    .pipe(gulp.dest('public/_assets/css'))
    .pipe(livereload());
});

现在它可以工作,因为它看到了一个特定的文件来定位和编译



1> Leon Gaban..:

弄清楚了!

不是100%,仍然不确定为什么多路径数组不起作用.

无论如何我忘了在我的主web.scss文件中我已经设置了多个import语句:

@import "vendors/normalize";    // Normalize stylesheet
@import "modules/reset";        // Reset stylesheet
@import "modules/base";         // Load base files
@import "modules/defaults";     // Defaults
@import "modules/inputs";       // Inputs & Selects
@import "modules/buttons";      // Buttons
@import "modules/layout";       // Load Layouts
@import "modules/svg";          // Load SVG
@import "modules/queries";      // Media Queries

所以我实际上并不需要尝试按照我尝试的方式使用Gulp,我只需要.scss直接定位该1个文件.所以我在这做了:

// Compile public SASS
gulp.task('sass', function () {
return sass('public/_sources/sass/bitage_web.scss', { style: 'compressed' })
    .pipe(sourcemaps.init())
    .pipe(sourcemaps.write('./maps'))
    .pipe(gulp.dest('public/_assets/css'))
    .pipe(livereload());
});

现在它可以工作,因为它看到了一个特定的文件来定位和编译



2> Raphael Isid..:

我也无法使用'* .scss'

在git文档(https://github.com/sindresorhus/gulp-ruby-sass)中,他们使用以下正弦值:

gulp.task('sass', function(){
   return sass('public/_sources/sass/',
   { style: 'compressed'})
.pipe(sourcemaps.init())
});

我对其进行了测试,并且可以正常工作,它可以编译文件夹中的所有文件。

万一有人遇到同样的问题


推荐阅读
  • 保持sass条理性和可读性的最基本的三个方法:嵌套、导入和注释安装sass和compassruby-v查看ruby版本gemsources—removehttps:rubyg ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 部分转载自:http:blog.csdn.netliujiuxiaoshitouarticledetails69920917头文件#include<assert.h& ... [详细]
  • 我正在docker本地运行coo ... [详细]
  • 起首须要装置插件:sass-resources-loadernpmisass-resources-loader--save-devscss:修正vue-cli的buildutils ... [详细]
  • 在ReactWeb应用程序的上下文中,cssscsssass中有哪些功能是使用纯JavaScript ... [详细]
  • 编译sass,遇到报错error style.scss (Line 3: Invalid GBK character
    今天学习sass,写了一行中文注释,结果却遇到了报错:1cmd.exeDCcallC:Ruby23-x64binscss.bat--no-cache--update ... [详细]
  • 原因:增加配置:webpack.base.conf.jsloaders:{scss:[vue-style-loader,css,sass].join(! ... [详细]
  • ruby环境中自动编译sass教程
    ruby环境中自动编译sass教程-sass为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护!sass安装安装完ruby之后,在开始菜单中,找到 ... [详细]
  • 在我的gulpfile中,我注意到了这种奇怪的行为。如果我这样定义手表(带括号): ... [详细]
  • 本文主要分享【】,技术文章【SassScss、Less是什么?】为【CRMEB】投稿,如果你遇到CRMEB,学习笔记相关问题,本文相关知识或能到你。Sass(SyntacticallyAw ... [详细]
  • 首先要说sass和scss的区别。sass之前是缩进的语法,有点像python和jade那样,写起来有点不方便,所以后来兼容了css的写法,就变成了scss。sass支持函数,循环,each,mixi ... [详细]
  • 我正在为网站创建自定义光标。当鼠标移动时,我有两个div居中于光标,但是当 ... [详细]
  • sass在vue中需要注意什么
    这篇文章将为大家详细讲解有关sass在vue中需要注意什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当用@imp ... [详细]
  • 1.什么是预处理器?  CSS预处理器是用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题。 ... [详细]
author-avatar
掩飾獨殇_389
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有