在 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
没有扩展文件。