javascript - gulp 手表的问题
问题描述
我正在准备一个项目,并决定使用 gulp 收集器。我写了命令,但是 gulp watch 不起作用。它在启动时不会在终端中产生任何错误,因此很难理解问题所在。也许有人遇到过类似的。
我将代码附在 gulpfile.js 中
'use strict';
var gulp = require('gulp'),
watch = require('gulp-watch'),
prefixer = require('gulp-autoprefixer'),
uglify = require('gulp-uglify'),
sass = require('gulp-sass'),
sourcemaps = require('gulp-sourcemaps'),
rigger = require('gulp-rigger'),
cssmin = require('gulp-minify-css'),
imagemin = require('gulp-imagemin'),
pngquant = require('imagemin-pngquant'),
rimraf = require('rimraf'),
browserSync = require("browser-sync"),
reload = browserSync.reload;
var path = {
build: {
html: 'build/',
js: 'build/js/',
css: 'build/css/',
img: 'build/img/',
fonts: 'build/fonts/'
},
src: {
html: 'src/*.html',
js: 'src/js/**/*.js',
style: 'src/style/**/*.scss',
img: 'src/img/**/*.*',
fonts: 'src/fonts/**/*.*'
},
watch: {
html: 'src/**/*.html',
js: 'src/js/**/*.js',
style: 'src/style/**/*.scss',
img: 'src/img/**/*.*',
fonts: 'src/fonts/**/*.*'
},
clean: './build'
};
var config = {
server: {
baseDir: "./build"
},
tunnel: false, /* Создание временного тунеля заблокированно */
host: 'localhost',
port: 9000,
logPrefix: "Eugene Kobeliaksky"
};
gulp.task('webserver', function (done) {
browserSync(config);
done();
});
gulp.task('clean', function (cb) {
rimraf(path.clean, cb);
});
gulp.task('html:build', function () {
gulp.src(path.src.html)
.pipe(rigger())
.pipe(gulp.dest(path.build.html))
.pipe(reload({stream: true}));
});
gulp.task('js:build', function () {
gulp.src(path.src.js)
.pipe(rigger())
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.build.js))
.pipe(browserSync.reload({stream: true}));//edit live reload
});
gulp.task('style:build', function () {
gulp.src(path.src.style)
.pipe(sourcemaps.init())
.pipe(sass({
sourceMap: true,
errLogToConsole: true
}))
.pipe(prefixer())
.pipe(cssmin())
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.build.css))
.pipe(reload({stream: true}));
});
gulp.task('image:build', function () {
gulp.src(path.src.img)
.pipe(imagemin({
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()],
interlaced: true
}))
.pipe(gulp.dest(path.build.img))
.pipe(reload({stream: true}));
});
gulp.task('fonts:build', function() {
gulp.src(path.src.fonts)
.pipe(gulp.dest(path.build.fonts))
});
gulp.task('build', [
'html:build',
'js:build',
'style:build',
'fonts:build',
'image:build'
]);
gulp.task('watch', function(){
watch([path.watch.html], function(event, cb, done) {
gulp.start('html:build');
done();
});
watch([path.watch.style], function(event, cb, done) {
gulp.start('style:build');
done();
});
watch([path.watch.js], function(event, cb, done) {
gulp.start('js:build');
done();
});
watch([path.watch.img], function(event, cb, done) {
gulp.start('image:build');
done();
});
watch([path.watch.fonts], function(event, cb, done) {
gulp.start('fonts:build');
done();
});
});
gulp.task('default', ['build', 'webserver', 'watch']);
解决方案
推荐阅读
- ruby-on-rails - 非确定性 NameError:ActiveRecord 模型上的未初始化常量
- unity3d - unity vr 构建错误
- python - python使用@方法替换一个值
- flutter - 使用 data_usage 插件时出错:未处理的异常:PlatformException(PERMISSION_NOT_GRANTED,null,null,null)
- security - 在应用程序中存储主机和端口数据是否会使服务器易受攻击?
- spring - CSRF 令牌已配置,但 POST 请求仍然无法在 Spring Boot 应用程序中工作
- optaplanner - 规划实体字段上的 @ValueRangeProvider 注释
- python - 如何对kafka生产者进行单元测试(python)
- elasticsearch - 从弹性索引中提取数据,处理并返回
- angularjs - Asp.net Core 项目中的 Azure Dev Ops 查询生成器