【发布时间】:2020-05-01 01:44:25
【问题描述】:
我刚开始使用 Gulp,但我似乎无法让它工作。当我只运行常规的 sass 命令时,一切都编译得很好。
这是我的 Gulp 文件:
//Gulp Dependencies
var gulp = require("gulp");
var log = require("fancy-log");
//Style Dependencies
var sourcemaps = require("gulp-sourcemaps");
var scss = require("gulp-sass");
var autoprefixer = require("gulp-autoprefixer");
var cssnano = require("gulp-cssnano");
function scssTask() {
return gulp.src(["../css/partial/*.scss",
"../css/*.scss","])
.pipe(sourcemaps.init())
.on("end", function(){
log("Sourcemap Complete...");
})
.pipe(scss())
.on("end", function(){
log("SASS Compiled...");
})
.pipe(autoprefixer())
.on("end", function(){
log("Autoprefixer Done...");
})
.pipe(cssnano())
.on("end", function(){
log("CSS Minified...");
})
.pipe(gulp.dest("../../dist/css")
)
.on("end", function(){
log("SCSS Task Complete!");
});
}
exports.default = gulp.series(scssTask);
当我运行它时,我收到以下错误:
[05:12:57] Using gulpfile /path/to/gulpfile
[05:12:57] Starting 'default'...
[05:12:57] Starting 'scssTask'...
[05:12:57] 'scssTask' errored after 26 ms
[05:12:57] Error in plugin "gulp-sass"
Message:
../css/coming-soon.scss
Error: no mixin named background
on line 4 of ../css/coming-soon.scss
>> @include background($images + "blurground.jpg");
-----------^
Details:
status: 1
file: /var/www/pickle.codes/src/css/coming-soon.scss
line: 4
column: 12
formatted: Error: no mixin named background
on line 4 of ../css/coming-soon.scss
>> @include background($images + "blurground.jpg");
-----------^
messageFormatted: ../css/coming-soon.scss
Error: no mixin named background
on line 4 of ../css/coming-soon.scss
>> @include background($images + "blurground.jpg");
-----------^
messageOriginal: no mixin named background
relativePath: ../css/coming-soon.scss
domainEmitter: [object Object]
domainThrown: false
这里是coming-soon.scss的相关部分
@use "partial/base.scss" as *;
html {
@include background($images + "image.jpg");
}
...
这里是 _base.scss 的相关部分
$images: "/static/images/" !default;
@mixin background($background-image-path) {
background: url($background-image-path) center center fixed;
}
其他有类似问题的人说他们没有用“_”命名他们的部分 scss 文件,但我的情况并非如此,因为“_base.scss”确实——事实上——有一个下划线。我的下一个想法是,既然常规的 sass 命令正在工作,那一定是因为 Gulp 在coming-soon.scss 之前没有编译 _bass.scss,所以我将 _base.scss 移动到它自己的文件夹并放入新的“部分”文件夹数组中的第一个。但这似乎没有帮助。
在此先感谢,如果最终我只是捏造了一个分号或其他东西,我很抱歉:P
【问题讨论】:
标签: javascript css node.js sass gulp