复制 .htaccess(一个点文件)与 gulp 失败



在 gulp 任务中,我尝试复制构建文件夹中的文件。

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。为什么?如何解决这个问题?

如果文件或目录路径部分的第一个字符为 . 那么它不会匹配任何 glob 模式,除非该模式是 相应的路径部分也有一个.作为它的第一个角色。

例如,模式a/.*/c将与 a/.b/c 处的文件匹配。 但是,a/*/c模式不会,因为*不是以 点字符。您可以通过以下方式使 glob 将点视为普通字符 在选项中设置点:真。

设置选项:

gulp.src('...…….', { dot: true }) 
以便像对待

任何其他字符一样对待点。 然后你应该能够使用你原来的gulp.src。

来自节点 glob 文档

如果我

添加此文件的直接路径,则 Gulp 复制.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没有扩展文件。

最新更新