最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Gulp - Minify JS and write to same destination - Stack Overflow

programmeradmin1浏览0评论

I am currently refactoring a project where previously all of the minified JavaScript files were being placed in a specific directory. Now I need to the minified versions to stay in the same directories as their source files.

Currently I do this:

gulp.task( 'scripts', function () {
    return gulp.src( source_paths.scripts )
        .pipe( uglify( {
            preserveComments: 'false'
        } ) )
        .pipe( rename( {suffix: ".min"} ) )
        .pipe( gulp.dest( './build/js' ) )
        .pipe( notify( {
            message: 'Scripts task plete!',
            onLast : true
        } ) );

} );

This works, except it moves my files. I tried changing my use of gulp.dest() to .pipe( gulp.dest( '' ) ) as well as just removing that line. In both cases no minified JS was written and I was very sad.

How can I make it write all files to the same directory as their source files?

I am currently refactoring a project where previously all of the minified JavaScript files were being placed in a specific directory. Now I need to the minified versions to stay in the same directories as their source files.

Currently I do this:

gulp.task( 'scripts', function () {
    return gulp.src( source_paths.scripts )
        .pipe( uglify( {
            preserveComments: 'false'
        } ) )
        .pipe( rename( {suffix: ".min"} ) )
        .pipe( gulp.dest( './build/js' ) )
        .pipe( notify( {
            message: 'Scripts task plete!',
            onLast : true
        } ) );

} );

This works, except it moves my files. I tried changing my use of gulp.dest() to .pipe( gulp.dest( '' ) ) as well as just removing that line. In both cases no minified JS was written and I was very sad.

How can I make it write all files to the same directory as their source files?

Share Improve this question edited Mar 1, 2016 at 14:43 scniro 17k8 gold badges66 silver badges107 bronze badges asked Mar 1, 2016 at 4:26 JPollockJPollock 3,5584 gold badges27 silver badges37 bronze badges 1
  • What's the difference between your question and this one? – gideonite Commented Mar 1, 2016 at 4:30
Add a ment  | 

2 Answers 2

Reset to default 8

You're currently writing to build/js, and of course removing the dest results in no files written. As ments suggest, you can call file.base in an anonymous function in your dest call. Observe the following...

// fixed spacing madness
gulp.task('scripts', function () {
    return gulp.src(source_paths.scripts)
        .pipe(uglify({
            preserveComments: 'false'
        }) 
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest(function(file) {
            return file.base;
        }))
        .pipe(notify({
            message: 'Scripts task plete!',
            onLast : true
        }));
});

USE " ./ " ... current location

gulp.task('task_name', function () {
    return gulp.src(path\*.js) // or other selection
    .pipe(uglify()) 
    .pipe(rename({suffix: '.min'})).pipe(gulp.dest("./"));
});
发布评论

评论列表(0)

  1. 暂无评论