Gulp在gulp.src()中的符号链接上给出错误

时间:2015-01-22 00:23:09

标签: javascript osx-mavericks gulp gulp-imagemin

我的图像文件夹中有一个符号链接指向包含第三方库提供的外部图像的另一个文件夹(由bower管理 - 得到爱javascript)。作为构建过程的一部分,我按如下方式压缩所有图像:

gulp.task('images', function() {
return gulp.src('static/img/**/*')
    .pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))
    .pipe(gulp.dest('dist/img'))
});

当gulp到达img文件夹中的符号链接文件夹时,它会返回

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: EISDIR, read

使用gulp-debug显示它在符号链接文件夹上存在。我在Mac OSX上,使用ln -s创建了符号链接。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

gulp.src()使用node-glob,它不会抓取符号链接:

  

**如果是" globstar"单独在路径部分,然后它匹配零个或多个目录和子目录搜索匹配。它不会抓取符号链接的目录。

  

请注意,符号链接的目录不会作为**的一部分进行爬网,尽管它们的内容可能与模式的后续部分匹配。这可以防止无限循环和重复等。

我不知道它是错误还是只是跳过它们。

答案 1 :(得分:4)

I was having the same problem when pointing to a @XmlRootElement public class User { @XmlVariableNode("fieldName") public List<TopLevelField> fields; } folder. The solution was simple, just used vinyl-fs package.

symlink

答案 2 :(得分:2)

你可以使用'follow:true'选项让Gulp遵循符号链接。例如:

gulp.src('static/img/**/*', { follow: true })