首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对命名为文件的文件夹有问题

对命名为文件的文件夹有问题
EN

Stack Overflow用户
提问于 2016-11-25 03:24:43
回答 1查看 88关注 0票数 0

我的任务是:

代码语言:javascript
复制
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的文件夹中。

代码语言:javascript
复制
Project
 |    
 +-- bower_components
    |  
    +-- animate.css
        |
        +--animate.css
        +--animate.min.css (etc)

这会导致gulp在重命名任务上失败:

错误: EISDIR:在一个目录上非法操作,在错误处打开‘~/css/airate.css’(本机)

除了特别豁免外,我又如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-25 11:59:17

您的问题是,gulp.src()中的模式匹配两件事:

  1. 目录bower_component/animate.css
  2. 文件bower_component/animate.css/animate.css

然后继续执行一个rename({dirname: './css'}),这意味着您的结果是:

  1. 目录css/animate.css
  2. 文件css/animate.css

两者显然不能同时存在。

您需要确保gulp.src()中的模式与任何目录本身不匹配(只有这些目录中的文件)。

gulp.src()在内部使用globgulp.src()的选项传递给glob。这意味着您可以使用 option of glob来防止目录匹配:

代码语言:javascript
复制
return gulp.src(['bower_components/**/*.css','!bower_components/**/*.min.css'], {nodir:true})
  .pipe(rename({dirname: './css'}))
  .pipe(gulp.dest('dist'));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40797243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档