我有一个gulpfile.js,我需要有相同的src glob和多个目标。但在这个answer中指定,如果我指定base,那么我的整个目录从some
开始被复制到pubdir,这是一个问题。
var moduleglob = 'some/path/more/' + themeconfig.name + '/' + '**/**/styles/some.scss';
gulp.src(moduleglob,{ base: "./" })
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest("."))
gulp.src(moduleglob)
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(pubdir))
是否有一种方法可以将上面的两个代码合并为一个,同时能够将目标定位到两个正确的文件夹,即一个与root相关,另一个与pubdir相关?
1条答案
按热度按时间vof42yt11#
Gulp可以在Gulp重命名插件的帮助下重命名目录。
一开始我不知道它是如何工作的,但在我明白之后,我知道它实际上是非常酷的插件。
这个插件所做的只是重命名的路径后,无论剥离的基础,这是默认的gulp源和目的行为复制。
所以原始目录保持从所有glob模式之前的
file.base
,因此file.base
是'some/path/more/' + themeconfig.name
,但我需要一些修改,即使在这个glob。我想从序列中删除一个名为
web
的目录,当它在pubdir上放置result时。此外,我还更改了dest函数上的
file.base
,这样当放到pubdir时,它将不相对于origin,并且它将在从序列中删除web
后放置目录。所以上面两个命令都可以这样写。