【发布时间】:2017-09-18 00:11:47
【问题描述】:
这是我当前的目录树: Directory Tree
这是我的 gulpfile.js 代码:
var gulp = require ('gulp'),
gutil = require('gulp-util'),
uglify = require('gulp-uglify'),
sass = require('gulp-ruby-sass'),
concat = require('gulp-concat'),
livereload = require('gulp-livereload'),
lr = require('tiny-lr'),
server = lr();
var jsSources = ['components/scripts/scriptOne.js',
'components/scripts/scriptTwo.js'
];
var sassSources = [
'comptonents/sass/*.scss'
];
gulp.task('js', function() {
gulp.src(jsSources)
.pipe(uglify())
.pipe(concat ('script.js'))
.pipe(gulp.dest('js'));
});
gulp.task('sass', function() {
gulp.src(sassSources)
.pipe(sass({style: 'expanded', lineNumbers: true}))
.on('error', gutil.log)
.pipe(concat('style.css'))
.pipe(gulp.dest('css'))
.pipe(livereload());
});
gulp.task('watch', function() {
var server = livereload();
gulp.watch(jsSources, ['js']);
gulp.watch(sassSources, ['sass']);
gulp.watch(['js/script.js', '*.html'], function(e) {
server.changed(e.path);
});
});
gulp.task('default', ['sass','js', 'watch']);
每当我尝试运行 gulp 来编译我的 sass 时,我得到的错误是输出以下命令。
19:55:01] Using gulpfile ~/Desktop/coffeescript/gulpfile.js
[19:55:01] Starting 'sass'...
[19:55:01] 'sass' errored after 21 ms
[19:55:01] TypeError: glob pattern string required
at new Minimatch (/Users/Aquinas/Desktop/coffeescript/node_modules/gulp-ruby-sass/node_modules/minimatch/minimatch.js:116:11)
at setopts (/Users/Aquinas/Desktop/coffeescript/node_modules/gulp-ruby-sass/node_modules/glob/common.js:118:20)
at new GlobSync (/Users/Aquinas/Desktop/coffeescript/node_modules/gulp-ruby-sass/node_modules/glob/sync.js:40:3)
at Function.globSync [as sync] (/Users/Aquinas/Desktop/coffeescript/node_modules/gulp-ruby-sass/node_modules/glob/sync.js:26:10)
at /Users/Aquinas/Desktop/coffeescript/node_modules/gulp-ruby-sass/index.js:68:21
at Array.forEach (native)
at gulpRubySass (/Users/Aquinas/Desktop/coffeescript/node_modules/gulp-ruby-sass/index.js:67:10)
at Gulp.<anonymous> (/Users/Aquinas/Desktop/coffeescript/gulpfile.js:27:11)
at module.exports (/Users/Aquinas/Desktop/coffeescript/node_modules/orchestrator/lib/runTask.js:34:7)
at Gulp.Orchestrator._runTask (/Users/Aquinas/Desktop/coffeescript/node_modules/orchestrator/index.js:273:3)
请帮我解决这个问题。谢谢。
编辑一:更改了 var SassSources 中的拼写错误。但是,仍然输出错误。我什至没有日志来检查它。糟透了,我确定我已经启用了 log 命令。无论如何,如果它有帮助,这里是 gulp 插件树:
编辑二:已解决!!我必须指出实时重新加载编号(从我的 index.html 中的 xxx 提供)。我不得不对我的代码做一些调整,中提琴!它就像面包和黄油一样运行。
调整代码:
gulp.task('watch', function() {
livereload.listen(35732);
var server = livereload();
gulp.watch(jsSources, ['js']);
gulp.watch(coffeeSources, ['coffee']);
gulp.watch(sassSources, ['sass']);
gulp.watch(['js/script.js', '*.html'], function(e) {
livereload.changed(e.path);
});
});
问题是 livereload 的监视不起作用,因为我使用的代码有点过时了。
【问题讨论】:
-
这是一个错字:'comptonents'?在 sassSources 中。
-
是的!感谢您指出这一点,哈哈!但是,我已经纠正了它,它仍然输出相同的错误。我更新了顶部帖子以显示我的 gulp 插件树。谢谢大家!
-
如果您只是将 'components/sass/*.scss' 放入 'sass' 任务 src 而不是对 sassSources 的数组调用,会发生什么情况?
标签: compiler-errors sass compilation gulp