javascript - 使用 gulp 检测文件更改

标签 javascript gulp gulp-watch

我有这个 gulpfile:

  var gulp = require('gulp'),
      concat = require('gulp-concat'),
      uglify = require('gulp-uglify');

  gulp.task('minifyJS', function() {
    return gulp.src(['src/*.js'])
      .pipe(uglify())
      .pipe(gulp.dest('min'));
  });

  gulp.task('watch', function() {
    gulp.watch(['src/*.js'], ['minifyJS']);
  });

我想知道什么文件触发观察者及其绝对路径。

例如:如果我的项目放在/myCode,我更改文件src/main.js,我想看到/myCode/src/main.jsminifyJS 任务中。有办法吗?

感谢您的宝贵时间。

最佳答案

您可以使用 gulp-ng-annotategulp-changed 来完成:

var gulp = require('gulp');
var changed = require('gulp-changed');
var rename = require('gulp-rename');
var ngAnnotate = require('gulp-ng-annotate'); // just as an example
var SRC = 'src/*.js';
var DEST = 'src/';

//Function to get the path from the file name
function createPath(file) {
    var stringArray = file.split('/');
    var path = '';
    var name = stringArray[1].split('.');
    stringArray = name[0].split(/(?=[A-Z])/);
    if (stringArray.length>1) {stringArray.pop()};
    return {folder: stringArray[0], name: name[0]}
}


gulp.task('default', function () {
    return gulp.src(SRC)
        .pipe(changed(DEST))
        // ngAnnotate will only get the files that
        // changed since the last time it was run
        .pipe(ngAnnotate())
        .pipe(rename(function (path) {
            var createdPath = createPath(path);
            path.dirname = createdPath.folder;
            path.basename: createdPath.name,
            path.prefix: "",
            path.suffix: "",
            path.extname: ".min.js"
         }))
        .pipe(gulp.dest(DEST));
});

结果:

enter image description here

关于javascript - 使用 gulp 检测文件更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35294738/

相关文章:

javascript - 在 Canvas 上使用 HTML,没有任何效果

javascript - jQuery - 一些不重复代码的聪明想法?

javascript - 在 gulp 和 nodejs 中使用 Typescript 时未定义对 require 和 exports 的引用

javascript - 如何在修复文件时连续自动运行 gulp eslint -- 如何设置 watch

javascript - 附加链接上的点击功能不起作用

javascript - 根据单选按钮值添加到值

html - gulp-inject 给出了错误的相对路径

javascript - 使用 Google Closure Compiler 调试代码删除

node.js - gulp-watch 只运行一次

javascript - 检测 vagrant guest 机器中的文件更改