gpt4 book ai didi

javascript - gulp-remember 似乎输出错误的路径

转载 作者:行者123 更新时间:2023-12-03 08:40:00 26 4
gpt4 key购买 nike

[使用 gulp 3.9.0、gulp-cached 1.1.0、gulp-remember 0.3.0、gulp-rename 1.2.2]

我们使用 gulp 作为构建工具,并将 gulp-cached 与 gulp-remember 一起使用,以允许快速增量重建。构建下的部分文件必须移动到不同的输出目录,并且这必须在流中发生(即不在 gulp.dest() 中),因为我们随后会压缩结果。我们为此使用 gulp-rename。

但是,当多次调用构建脚本(用于增量重建的 gulp.watch())时,它似乎会多次应用 gulp-rename 转换。看起来 gulp-remember 实际上并不是用上次看到的路径输出文件,而是用 gulp-rename 步骤后得到的路径输出文件。

我已将问题范围缩小到以下脚本:

var gulp = require('gulp');
var cached = require('gulp-cached');
var remember = require('gulp-remember');
var rename = require('gulp-rename');

function build() {
gulp.src("src/**")
.pipe(cached())
.pipe(remember())
.pipe(rename(function(path) {path.dirname = "resources/" + path.dirname;}))
.pipe(gulp.dest('build/'));
}

gulp.task('default', [], function() {
build();
build();
});

在源目录 src 上仅使用一个文件“myfile.js”运行此命令会生成输出文件:

/build/resources/resources/myfile.js

如果删除了对 build() 的第二次调用,它将正确生成

/build/resources/myfile.js

如果我们插入第三次调用 build(),它会产生

/build/resources/resources/resources/myfile.js

我们该如何解决这个问题?难道 gulp-remember 不应该在进一步处理文件之前输出上次通过文件时的路径吗?

最佳答案

您应该在应用转换后调用remember。所以在这种情况下:

.pipe(cached())
.pipe(rename(function(path) {path.dirname = "resources/" + path.dirname;}))
.pipe(remember())

关于javascript - gulp-remember 似乎输出错误的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com