使用 gulp 复制 .htaccess(点文件)失败
Posted
技术标签:
【中文标题】使用 gulp 复制 .htaccess(点文件)失败【英文标题】:Copy .htaccess (a dotfile) with gulp failed 【发布时间】:2019-05-25 12:08:11 【问题描述】:在 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
永远不会被复制。为什么 ?如何解决?
【问题讨论】:
【参考方案1】:点
如果文件或目录路径部分具有 .作为第一个角色, 那么它将不匹配任何 glob 模式,除非该模式 对应的路径部分也有一个 .作为它的第一个字符。
例如,模式
a/.*/c
将匹配a/.b/c
处的文件。 但是模式a/*/c
不会,因为*
不是以 点字符。您可以通过以下方式使 glob 将点视为普通字符 在选项中设置 dot:true。
设置选项:
gulp.src('...…….', dot: true )
以便点被视为任何其他字符。你应该可以使用你原来的 gulp.src 了。
来自node-glob documentation
【讨论】:
【参考方案2】:如果我将直接路径添加到此文件,则 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
没有得到扩展文件,所以没有被复制。
【讨论】:
以上是关于使用 gulp 复制 .htaccess(点文件)失败的主要内容,如果未能解决你的问题,请参考以下文章