首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我根本不能让gulp ruby-sass或gulp sass工作

我根本不能让gulp ruby-sass或gulp sass工作
EN

Stack Overflow用户
提问于 2014-12-09 20:59:42
回答 1查看 6.1K关注 0票数 3

我试着使用but ruby-sass和/或up sass,但这两种方法对我都不起作用,我认为我已经正确地设置好了。我已经看了一堆其他的SO帖子,但到目前为止还没有适合我的帖子。

我得到了另一个gulp任务,它递归地将资源目录和index.html从src复制到dist,每次都有效。

为了测试sass设置的正确性,我运行了一个普通的sass编译,然后运行gulp;sass通过递归复制更改工作和渲染。下面是sass测试的命令:

代码语言:javascript
复制
$ sass ./sass/main.scss ./src/assets/css/main.css
$ gulp

忘记普通的sass测试,回到这里的here sass问题-在我的gulpfile中,我在运行递归复制任务之前运行了gulp sass任务,所以如果它起作用了,那么sass的更改应该被应用和复制。至少我是这么想的。

下面是我的dir结构,显示了相关文件:

代码语言:javascript
复制
    ├── src
    │    ├── index.html
    │    └── assets
    │           ├── css
    │           │    └── main.css
    │           ├── js
    │           │    └── app.js
    │           └── img
    │                └── etc.jpg
    │   
    ├── dist
    │    └── index.html ( from ./src via recursive copy)
    │    └── assets
    │           └── (same as ./src/assets via recursive copy)
    │   
    ├── sass
    │    ├── main.scss
    │    ├── _partial1.scss
    │    ├── _partial2.scss
    │    └── etc ...
    │
    ├── gulpfile.js
    │
    ├── node_modules
    │    └── etc ...
    │
    └── bower_components
         └── etc ...

在gulpfile.js中有几个文件映射对象,它们可以很好地处理src/assets/的递归副本。但是为了测试gulp-ruby-sass任务,我对sass/css路径进行了硬编码,以消除文件映射出错的可能性。

根据记录,我在OSX Maverics 10.9.5上运行,并且我认为我有正确的环境设置:

代码语言:javascript
复制
$ ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13]
$ sass -v
Sass 3.4.9 (Selective Steve)

这是我的gulpfile.js,显示了我到目前为止已经尝试过的方法,并注释掉了与gulp sass相关的任务:

代码语言:javascript
复制
    var gulp = require('gulp');
    var watch = require('gulp-watch');
    var gsass = require('gulp-ruby-sass');
    // var gsass = require('gulp-sass');
    var gutil = require('gulp-util');

    // Base paths:
    var basePaths = {
        srcRoot: './src/',
        distRoot: './dist/',
        bowerRoot: './bower_components/'
    };

    // File paths:
    var filePaths = {
        sassRoot: basePaths.srcRoot + 'sass/',
        assetsBuildRoot: basePaths.srcRoot + 'assets/',
        jqMin: basePaths.bowerRoot + 'jquery/dist/jquery.min.js',
        html: basePaths.srcRoot + 'index.html'
    };

    // With gulp-ruby-sass
    gulp.task('compile-sass', function() {
            gulp.src('./sass/main.scss')
            .pipe(gsass({sourcemap: true, sourcemapPath: './sass/'}))
            .on('error', function (err) { console.log(err.message); })
            .pipe(gulp.dest('./src/assets/css'));
    });

    // With gulp-sass
    // gulp.task('gsass', function () {
    //  gulp.src('./sass/*.scss')
    //      .pipe(gsass())
    //      .pipe(gulp.dest('./src/assets/css'));
    // });

    // Assets directory copied recursively from /src to /dist:
    gulp.src(filePaths.assetsBuildRoot + '**/*.*', {base : basePaths.srcRoot})
        .pipe(gulp.dest(basePaths.distRoot));

    // Copy index.html from /src to /dist:
    gulp.src(filePaths.html)
        .pipe(gulp.dest(basePaths.distRoot));

    gulp.task('default', function() {

        // With gulp-ruby-sass
        // return gulp.src('./sass/main.scss')
        //  .pipe(gsass({sourcemap: true, sourcemapPath: './sass/'}))
        //  .on('error', function (err) { console.log(err.message); })
        //  .pipe(gulp.dest('./src/assets/css'));

        // gulp.watch('compile-sass');

        console.log('You reached the finishing line');
    });

我尝试了各种修复方法,例如:删除所有普通的sass编译的.css文件并运行gulp编译,但是没有生成.css。我还尝试删除了vanilla sass编译程序生成的所有*.map文件,然后运行gulp,但没有删除骰子。

有没有人能看出有什么明显的错误?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-01-06 03:29:53

如果您使用的是Sass >= 3.4,则需要安装gulp ruby-sass版本1.0.0-alpha:

代码语言:javascript
复制
npm install --save-dev gulp-ruby-sass@1.0.0-alpha

在这个新版本中,gulp ruby-sass是一个gulp源适配器,语法略有变化。而不是:

代码语言:javascript
复制
gulp.task('compile-sass', function() {
        gulp.src('./sass/main.scss')
        task code here
});

新的语法是:

代码语言:javascript
复制
gulp.task('compile-sass', function() {
       return sass('./sass/main.scss')
        task code here
});

你可以在新版本的文档中找到更多信息,包括源地图的新语法。https://github.com/sindresorhus/gulp-ruby-sass/tree/rw/1.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27379550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档