我想使用gulp将所有来自父目录的src集合中的HTML复制并粘贴到子目录中,但保留其路径
Project
+-- /Development
| +- gulpfile.js
|
+-- /Source
+- /ComponentA
| +- /DirA
| +- fileA.html
|
+- /ComponentB
| +- /DirB
| +- fileB.html
|
+- /ComponentC
+- /DirC
+- fileC.html
我需要gulp将所有HTML文件复制到相对路径 Development / public_html
Project
+-- /Development
+- gulpfile.js
|
+- /public_html
+- /ComponentA
| +- /DirA
| +- fileA.html
|
+- /ComponentC
+- /DirC
+- fileC.html
我的gulp任务
gulp.task('copyHTMLwrong', function() {
return gulp.src([
'../Source/ComponentA/**/*.html',
'../Source/ComponentC/**/*.html'
])
.pipe(gulp.dest('public_html'));
});
但我得到(松散的道路):
Project
+-- /Development
+- gulpfile.js
|
+- /public_html
+- fileA.html
+- fileC.html
PS:我知道如果我使用' Source / ** / *。html',会正确复制所有文件,我确信我也可以删除 ComponentC 使用!,但我需要在 gulp.src 上定义每个组件,这样我就可以为每个网站编译一组文件。
gulp.task('copyHTMLnotUseful', function() {
return gulp.src([
'../Source/**.*.html',
'!../Source/ComponentB/**/*.html'
])
.pipe(gulp.dest('public_html'));
});
我已尝试设置 cwd 或 base ,但也没有。
由于
答案 0 :(得分:0)
我想出了如何使用 base 来修复我的问题。
这很简单,只需添加带__dirname的基础,就像这样。 只需确保在path.resolve()中设置:
gulp.task('copyHTML', function() {
return gulp.src([
'../Source/ComponentA/**/*.html',
'../Source/ComponentC/**/*.html'
],
{base: path.resolve(__dirname + '/../Source')})
.pipe(gulp.dest('public_html'));
});