Gulp 吞下自动刷新器给我一个承诺错误
我尝试了这个解决方案,但它不适合我 我使用的代码是:Gulp 吞下自动刷新器给我一个承诺错误,gulp,gulp-sass,gulp-autoprefixer,Gulp,Gulp Sass,Gulp Autoprefixer,我尝试了这个解决方案,但它不适合我 我使用的代码是: "use strict"; var gulp = require('gulp'); var sass = require('gulp-sass'); var prefix = require('gulp-autoprefixer'); var minify = require('gulp-minify-css'); var plumber = require('gulp-plumber'); function onError(err) {
"use strict";
var gulp = require('gulp');
var sass = require('gulp-sass');
var prefix = require('gulp-autoprefixer');
var minify = require('gulp-minify-css');
var plumber = require('gulp-plumber');
function onError(err) {
console.log(err);
}
gulp.task('sass', function(){
return gulp.src('src/style.scss')
.pipe(sass())
.pipe(prefix({browsers:['last 2 versions']}))
.pipe(minify())
.pipe(gulp.dest('css/'))
.pipe(plumber({
errorHandler: onError
}))
});
我收到以下错误消息:
/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:152
this.processing = new Promise(function (resolve, reject) {
^
ReferenceError: Promise is not defined
at LazyResult.async (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:152:31)
at LazyResult.then (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:75:21)
at DestroyableTransform._transform (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/index.js:28:13)
at DestroyableTransform.Transform._read (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:10)
at DestroyableTransform.Transform._write (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:160:12)
at doWrite (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:326:12)
at writeOrBuffer (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:312:5)
at DestroyableTransform.Writable.write (/Users/krisvandermast/gulptests/area512/node_modules/gulp-autoprefixer/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:239:11)
at write (/Users/krisvandermast/gulptests/area512/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
at flow (/Users/krisvandermast/gulptests/area512/node_modules/gulp-sass/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)
我在GitHub上为它打开了一个错误: 事实证明,我需要将Node.js版本升级到4。现在是
4.1.0
,以下代码起作用:
package.json
gulpfile.js
app.css
此时运行gulp
,并获得以下输出:
前缀后的app.css
我也有同样的问题(@Lightweight我通过升级到node.js版本4.1.0解决了这个问题。请看我下面的回复。我遇到了与OP相同的问题,我也升级到了NodeJS 4.1.1。它的工作方式与您的工作方式非常完美,但是如果您在管道中较早地使用gulp sass,它会失败(与lazyrult.js的错误相同)。我甚至尝试过gulp.src->.pipe(sass)->gulp.dest(),然后用第二个gulp.src->.pipe(autoprefixer)->gulp.dest()。它第一次工作时就无法再复制了。奇怪。你能用gulp sass再试一次并验证我的说法吗?
{
"name": "a",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Kris van der Mast",
"license": "ISC",
"devDependencies": {
"gulp": "^3.9.0",
"gulp-autoprefixer":"^3.0.1"
}
}
"use strict";
var gulp = require('gulp'),
autoprefixer = require('gulp-autoprefixer');
gulp.task('default', function () {
return gulp.src('src/app.css')
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(gulp.dest('dist'));
});
body {
opacity: .5;
box-sizing: border-box;
transform: scale(.5);
display: flex;
}
body {
opacity: .5;
box-sizing: border-box;
-webkit-transform: scale(.5);
transform: scale(.5);
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}