Gulp似乎在工作,但构build文件尚未处理
我的问题
我一直在使用gulp作为这个项目的一个任务运行者,我正在研究 – 这是一个简单的网站。 我有一个src
目录,在那里我可以完成所有的编码,存储我的所有资源,如脚本,图像,图标等。
到目前为止,gulp一直在做自动前缀和缩小我的CSS文件,它一直在压缩我的图像,缩小JavaScript和我的HTML。 然后将所有内容发送到build
目录,这就是我上传到服务器的内容。 一切都一直工作到今天。
问题是,吞咽似乎工作:它在terminal运行良好,它build立一个“build设”的目录,我所有的项目文件和资产都在那里。 然而,似乎没有任何处理发生。
我所试过的
-
删除构build目录并再次运行gulp:Gulp创build一个新的构build和一切似乎工作,但没有任何文件已被处理。
-
npm uninstall
,然后,npm install
:我想也许有一种可能性,全新的安装我所有的依赖将解决这个问题 – 但没有。 -
谷歌:显然我试过寻找解决scheme。 问题是我还没有find与我的问题有关的问题(我的appologies,如果有的话)。
在我看来,我的问题实际上源于这个事实,即Gulp悄然失败。 我没有得到任何的错误,但很明显,有些事情是错的。
我的环境btw …
我在Windows 10上运行。没有服务器运行,或者任何持续集成,浏览器刷新,或任何其他自动化任务。 我只是在一个目录中编写代码,Gulp正在处理这些代码和资产,并将其输出到build
目录。
我使用的插件是:
-
一饮而尽,autoprefixer
-
一饮而尽,htmlmin
-
一口洁净的CSS
-
一饮而尽,丑化
-
一饮而尽,imagemin
-
吞 – 删除 – HTML的评论
我使用的唯一软件包pipe理器是npm
no bower或其他任何东西。
实际的问题
所以,如果不清楚…为什么build设我的项目,但不输出正确的文件? 或者,文件是正确的,但不知何故处理被跳过?
非常感谢!
至于其他信息,我很乐意分享需要的东西。 但没有错误,所以没有日志分享。 这是gulpfile.js
var gulp = require('gulp'); var autoprefixer = require('gulp-autoprefixer'); var htmlmin = require('gulp-htmlmin'); var cleanCSS = require('gulp-clean-css'); var uglify = require('gulp-uglify'); var imagemin = require('gulp-imagemin'); var removeHtmlComments = require('gulp-remove-html-comments'); gulp.task('imagemin', function() { return gulp.src(['src/**/**/*', '!src/images/**/*.db']) .pipe(imagemin()) .pipe(gulp.dest('build/')); }); gulp.task('minify-js', function() { return gulp.src(['src/**/*.js']) .pipe(uglify()) .pipe(gulp.dest('build/')); }); gulp.task('minify-html', function() { return gulp.src('src/**/*.html') .pipe(removeHtmlComments()) .pipe(htmlmin({collapseWhitespace: true})) .pipe(gulp.dest('build/')) }); gulp.task('prefix', function () { return gulp.src('./src/**/*.css') .pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false })) .pipe(cleanCSS({compatibility: 'ie8'})) .pipe(gulp.dest('build/')); }); gulp.task('default', ['prefix', 'minify-html', 'minify-js', 'imagemin'], function() { gulp.watch(['src/css/*.css'], ['prefix']); gulp.watch(['src/**/*.html'], ['minify-html']); gulp.watch(['src/**/*js'], ['minify-js']); gulp.watch(['src/images/**/*'], ['imagemin']); });
所以我最终自己发现了这个问题。
起初,我的一大堆任务似乎没有明显的原因再次开始工作。 我不知道为什么,浪费了一个小时,没有运气的调查,只是向前发展。
直到今天,我只是忍受了这样的事实,即有时build设会有效,有时不会。
这个问题是在imagemin
任务。 src/**/**/*
应该是src/images/**/*
。 愚蠢的错误,但希望这可以帮助有类似问题的其他人 – 如果有的话。
构build有时会起作用,有时不起作用的原因是有时imagemin
任务会先完成工作,然后其他任务将运行良好。 如果imagemin
完成了imagemin
,那么这个任务会解除所有以前的处理,因为它是在src
所有文件上运行的。