使用gulp复制.htaccess(点文件)失败

6psbrbz9  于 2022-12-08  发布在  Gulp
关注(0)|答案(2)|浏览(138)

在一个gulp任务中,我尝试复制build文件夹中的文件。

gulp.task( addon, function() {
    var a_addon_function = addon.split("_") ;
    var addon_dirname = a_addon_function[1];
    var dest_path = ( options.env === "tests" || ( options.env === "dist" && options.type === "premium" ) ) ? build_path + addon_dirname + "/" + addon_dirname : build_path + addon_dirname;
    return gulp.src( [ "./plugins/addons/" + addon_dirname + "/**/*", "./plugins/_common/**/*", "./plugins/addons/_common/**/*" ] )
       .pipe( gulp.dest( dest_path ) 
    );
});

文件.htaccess从未被复制。为什么?如何解决?

laawzig2

laawzig21#


如果文件或目录路径部分的第一个字符是.,那么它将不匹配任何glob模式,除非该模式的相应路径部分的第一个字符也是.。
例如,模式a/.*/c将匹配a/.b/c处的文件。但是模式a/*/c不会匹配,因为*不是以点字符开头。您可以通过在选项中设置dot:true来使glob将点视为普通字符。
设置选项:

gulp.src('...…….', { dot: true })

这样就可以像处理其他字符一样处理点了。
来自node-glob文档

nbnkbykc

nbnkbykc2#

如果我将直接路径添加到该文件,则会大量复制.htaccess文件:./plugins/_common/.htaccess .

gulp.task( addon, function() {
    var a_addon_function = addon.split("_") ;
    var addon_dirname = a_addon_function[1];
    var dest_path = ( options.env === "tests" || ( options.env === "dist" && options.type === "premium" ) ) ? build_path + addon_dirname + "/" + addon_dirname : build_path + addon_dirname;
    return gulp.src( [ "./plugins/addons/" + addon_dirname + "/**/*", "./plugins/_common/**/*", "./plugins/_common/.htaccess", "./plugins/addons/_common/**/*" ] )
       .pipe( gulp.dest( dest_path ) 
   );
});

可能是因为.htaccess没有得到扩展文件而没有复制。

相关问题