node.js - Node.js Gulp src/dest 4.0 行为与 Gulp 3.6
问题描述
我的问题的快速总结:
Gulp 3.6.0 dest() 处理 glob-base 的方式与 4.0.0 相同吗?
function other() {
return src([
path.join("src/**/*"),
path.join("!src/**/*.{html,css,js,scss}")
])
.pipe(fileFilter)
.pipe(dest(dist));
}
使用上面的代码运行 Gulp 3.6.0 会产生以下结果:
请注意,此代码添加到 dist 文件夹的相关文件夹和文件是:
-app
-assets
-config
favicon.ico
现在在 4.0.0 中运行相同的代码会产生这样的结果:
我知道 glob-base 在通过管道传输时默认添加到目标,但是这种行为与 gulp 在 3.6.0 中处理镜像源到目标文件目录结构的方式不同吗?该示例会提出其他建议。
如果有人可以为我提供一个解决方案来生成与我的 3.6.0 结果中提供的相同的文件夹结构,那就太好了。我已经尝试过 gulp-flatten 和 gulp-rename ,但没有任何东西可以产生仅删除 glob-base 的预期结果。
解决方案
所以我仍然不确定升级到 Gulp 4.0 的意义与 glob-parent/glob-base 的处理方式有关,但是我设法使用 base 选项获得了我需要的东西。
此选项有效地取消了路径中 /**/ 之前的附加src硬编码路径引用。
function other() {
var fileFilter = plugins.filter(function(file) {
return file.stat.isFile();
});
var appFilter = plugins.filter(function(file) {
return file.path.indexOf("\\src\\app\\") === -1;
});
return src(path.join(conf.paths.src, "/**/*"), { base: conf.paths.src })
.pipe(appFilter)
.pipe(fileFilter)
.pipe(dest(conf.paths.dist));
}
推荐阅读
- github - 可根据要求访问 GitHub / GitLab
- sql - 我想查询特定年份范围的结果
- graphql - Graphql 获取具有特定字段的对象数组
- python - 对字符串中的空格进行编号
- huggingface-transformers - 拥抱面变压器安装问题
- python - 每当我尝试使用 Windows 中的命令提示符安装 python 库时,我的屏幕上都会显示以下错误。我该怎么办?
- r - 关于 R httr 中 Oauth2 资源所有者密码凭证授予的问题
- javascript - 显示 Toast 而不使用 useEffect 来控制 react 中的状态
- c# - 列类型未知时的 SqlBulkCopy
- python-2.7 - 遇到 ECDSA 问题的 python 脚本