2017-02-28 93 views
0

我想使用gulp + Foundation 6 + browserify。 当CLI运行一饮而尽我在终端使用gulp + foundation(sass版本)的错误

write ./scss.css/foundation.css 
path.js:7 
throw new TypeError('Path must be a string. Received ' + inspect(path)); 
^ 

TypeError: Path must be a string. Received undefined 
    at assertPath (path.js:7:11) 
    at Object.join (path.js:1211:7) 
    at exports.replaceLocation (/Applications/MAMP/htdocs/Jober/node_modules/gulp-ruby-sass/lib/utils.js:32:14) 
    at /Applications/MAMP/htdocs/Jober/node_modules/gulp-ruby-sass/index.js:179:13 
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:416:3) 

我gulpfile.js此错误是:

var gulp  = require ('gulp'), 
    logger  = require ('gulp-util'), 
    concat  = require ('gulp-concat'), 
    minifyCSS = require ('gulp-minify-css'), 
    compileSass = require ('gulp-ruby-sass'); 

var scss_sources, 
    input_address, 
    output_address; 

// Input and Output Address 
    input_address = 'asstes/src/'; 
    output_address = 'asstes/dist/'; 

// Style Sources 
    scss_sources = [ 
     'node_modules/foundation-sites/scss', 
     input_address + 'style/style.scss']; 

    gulp.task('styles', function(){ 
     return compileSass(scss_sources, { style: 'expanded' }) 
       .pipe(autoprefixer({ 
        browsers: ['last 2 versions', 'ie >= 9', 'and_chr >= 2.3'], 
        cascade: false 
       })) 
       .pipe(minifyCSS()) 
       .on('error', logger.log) 
       .pipe(gulp.dest(output_address + 'style')); 
    }); 

gulp.task('watch', function(){ 
    gulp.watch(input_address + 'style/pages/*.scss', ['styles']), 
}); 

gulp.task('default', ['styles' , 'watch']); 

我style.scss是:

//Modules 
@import 'foundation'; 

//Pages 
@import 'pages/index'; 

和我的文件夹结构:

PROJECT FOLDER 
    | 
    |_assets 
    | |_dist 
    | | |_img 
    | | |_js 
    | | |_style 
    | | 
    | |_src 
    |  |_img 
    |  |_js 
    |  |_style 
    | 
    |_node_modules 
    |  |_foundation-site 
    | 
    |_gulpfile.js 

我在使用gulp-ruby-sass之前使用了gulp-compass,但是,出现了流行错误:Individual stylesheets must be in the sass directory,因此将插件更改为gulp-ruby-sass。

我该如何解决?

回答

0

可能是字符串连接在scss_sources中无法正常工作。

尝试改变scss_sources到:

scss_sources = [ 
    'node_modules/foundation-sites/scss', 
    'asstes/src/style/style.scss' 
]; 

而看到这是否工作,如果是的话它的串联。