Gulp 文件夹命名类似文件时遇到问题
Gulp having issues with folders that are named like a file
我有一个gulp任务:
gulp.task('css-dependencies', function() {
return gulp.src(['bower_components/**/*.css','!bower_components/**/*.min.css'])
.pipe(rename({dirname: './css'}))
.pipe(gulp.dest('./'));
});
这适用于所有其他组件,但我想使用 animate.css
并通过 bower 添加将其放入名为 animate.css
:
的文件夹中
Project
|
+-- bower_components
|
+-- animate.css
|
+--animate.css
+--animate.min.css (etc)
导致 gulp 重命名任务失败:
Error: EISDIR: illegal operation on a directory, open ‘~/css/animate.css' at Error (native)
除了加入特定的豁免之外,我该如何解决这个问题?
您的问题是 gulp.src()
中的模式匹配两件事:
- 目录
bower_component/animate.css
- 文件
bower_component/animate.css/animate.css
然后你继续做 rename({dirname: './css'})
这意味着你最终得到:
- 一个目录
css/animate.css
- 一个文件
css/animate.css
两者显然不能同时存在
您需要确保 gulp.src()
中的模式不匹配任何目录本身(仅匹配那些目录中的文件)。
gulp.src()
使用 glob
internally and options to gulp.src()
are passed through to glob
. That means you can use the nodir
option of glob
来防止匹配目录:
return gulp.src(['bower_components/**/*.css','!bower_components/**/*.min.css'], {nodir:true})
.pipe(rename({dirname: './css'}))
.pipe(gulp.dest('dist'));
我有一个gulp任务:
gulp.task('css-dependencies', function() {
return gulp.src(['bower_components/**/*.css','!bower_components/**/*.min.css'])
.pipe(rename({dirname: './css'}))
.pipe(gulp.dest('./'));
});
这适用于所有其他组件,但我想使用 animate.css
并通过 bower 添加将其放入名为 animate.css
:
Project
|
+-- bower_components
|
+-- animate.css
|
+--animate.css
+--animate.min.css (etc)
导致 gulp 重命名任务失败:
Error: EISDIR: illegal operation on a directory, open ‘~/css/animate.css' at Error (native)
除了加入特定的豁免之外,我该如何解决这个问题?
您的问题是 gulp.src()
中的模式匹配两件事:
- 目录
bower_component/animate.css
- 文件
bower_component/animate.css/animate.css
然后你继续做 rename({dirname: './css'})
这意味着你最终得到:
- 一个目录
css/animate.css
- 一个文件
css/animate.css
两者显然不能同时存在
您需要确保 gulp.src()
中的模式不匹配任何目录本身(仅匹配那些目录中的文件)。
gulp.src()
使用 glob
internally and options to gulp.src()
are passed through to glob
. That means you can use the nodir
option of glob
来防止匹配目录:
return gulp.src(['bower_components/**/*.css','!bower_components/**/*.min.css'], {nodir:true})
.pipe(rename({dirname: './css'}))
.pipe(gulp.dest('dist'));