Gulp复制目录中的所有文件,没有目录

时间:2017-11-14 11:20:26

标签: javascript gulp

这是我的gulpfile

const gulp = require('gulp');
const runSequence = require('run-sequence');
const gulpCopy = require('gulp-copy');

//move client side library from client-lib to public folder
gulp.task('move-file',function(){
    console.log("Move-files");
    return gulp
        .src(['./client-lib/*.js'])        
        .pipe(gulpCopy('./public'))        

});

gulp.task('default',function(){   
    runSequence('move-file');
});

我需要复制client-lib文件夹中的所有js文件并复制到公用文件夹。但是这个包含文件夹和公共文件夹的代码副本看起来像

  

公共 - >客户lib-> myjsfiles

但我需要

  

公共 - > myjsfiles

3 个答案:

答案 0 :(得分:0)

您不需要使用任何NPM,

remove `const gulpCopy = require('gulp-copy');` ,

并从任务中gulpCopy这个命令。

然后尝试

gulp.task('move-file',function(){ 
gulp .src('client-lib/*.js') .pipe(rename({dirname: ''})) 
.pipe(gulp.dest('./public')) 
});

答案 1 :(得分:0)

您可以使用名为gulp-rename的库,这是一个简单的示例:

    var gulp = require('gulp');
    var rename = require('gulp-rename');

   gulp.task('html', function(){
     return gulp.src('app/client/**/*.html')
         .pipe(rename({dirname: ''}))
        .pipe(gulp.dest('./dist'));
    });

更多答案:
Can you remove a folder structure when copying files in gulp?

答案 2 :(得分:0)

gulp.task('move-file',function(){
    console.log("Move-files");
    return gulp
        .src(['./client-lib/*.js'])        
        .pipe(gulpCopy('./public', { prefix: 1 }))        

})

以下是说明:https://www.npmjs.com/package/gulp-copy#options

gulp-copy有一个options对象,您可以在其中使用prefix值。如果将其设置为1,它将删除路径的“ /”分隔的1部分。在您的情况下,1就足够了。如果要删除所有目录,请使用99。