Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 2.41 KB

README.md

File metadata and controls

89 lines (73 loc) · 2.41 KB

gulp-watch-path

This is for the expansion of the gulp.watch(event)

Some tasks errors can lead to gulp.watch is terminated, using gulp-watch-path can solve the problem.

有些 gulp 任务编译出错会终止 gulp.watch,使用 gulp-watch-path 配合 stream-combiner2 可避免这种情况。

When many folder file, can use gulp-watch-path "one-on-one" compilation

当文件夹文件很多时,可以利用 gulp-watch-path “一对一”编译

Install

$ npm i -D gulp-watch-path

Usage

Simple:

gulp.watch('src/**/*', function (event) {
    var paths = require('gulp-watch-path')(event, 'src/', 'dist/', 'node');
    console.log(paths)
    /*
    paths {srcPath: 'src/file.js',
          srcDir: 'src/',
          distPath: 'dist/file.node',
          distDir: 'dist/',
          srcFilename: 'file.js',
          distFilename: 'file.node' }
    */
    gulp.src(paths.srcPath)
        .pipe(uglify())
        .pipe(gulp.dest(paths.distDir))
})

Throw an error::

var gulp = require('gulp')
var watchPath = require('gulp-watch-path')
var uglify = require('gulp-uglify')
var combiner = require('stream-combiner2')

gulp.task('default', function () {
    gulp.watch('src/**/*.js', function (event) {
        var paths = watchPath(event,'src/', 'dist/');
        /*
        paths
            srcPath: 'src/file.js',
            distDir: 'dist/'
        */
        var combined = combiner.obj([
            gulp.src(paths.srcPath), // src/file.js
            uglify(),
            gulp.dest(paths.distDir) // dist/
        ]);
        combined.on('error', function (err) {
            console.log('--------------')
            console.log('Error')
            console.log('fileName: ' + err.fileName)
            console.log('lineNumber: ' + err.lineNumber)
            console.log('message: ' + err.message)
            console.log('plugin: ' + err.plugin)
        })

        console.log('\n')
        console.log(event.type + ': ' + paths.srcPath)
        console.log('dist: ' + paths.distPath)
        /*
        changed: src/file.js
        dist: dist/file.js
        */
    })
})

watchPath(event, search, replace, distExt)

参数 说明
event gulp.watch 回调函数的 event
search 需要被替换的起始字符串
replace 第三个参数是新的的字符串
distExt 扩展名(非必填)