【问题标题】:Gulp copy source failing because of .framework folder由于 .framework 文件夹,Gulp 复制源失败
【发布时间】:2017-01-24 10:37:35
【问题描述】:

我正在尝试运行一个命令,将我的项目内容复制到另一个文件夹中,但一直出现此错误:

Error: EISDIR: illegal operation on a directory, read

我缩小了范围,知道这是导致问题的 .framework 文件夹。如果我删除它,它可以正常工作。问题是我需要项目中的那个文件夹,因为我正在制作一个 InDesign HTML 插件,需要一个 PluPlug 框架。

这是我的环境:

Mac OSX 10.11.6
npm -v 4.0.5
node -v 7.4.0
gulp -v CLI version 1.2.2Local version 3.9.1

【问题讨论】:

    标签: javascript html node.js macos gulp


    【解决方案1】:

    你可以在 gulp try 中排除文件或文件夹

    gulp.src(['directory/**', '!**/.framework', '!**/.framework/**'], { dot: true })
    

    更多详情请查看此链接https://github.com/gulpjs/gulp/issues/679


    或者你可以使用 gulp Copy 任务
    这只是将文件从一个文件夹复制到另一个文件夹的便捷方式。 没有替换其他工具的目标。 不需要额外的库或包。

    gulp.task('copy', function () {
        gulp.src('directory/.framework/**')
            .pipe(gulp.dest('directory/.framework/'));
    });
    

    【讨论】:

    • 感谢您的帮助。忽略那些文件它可以工作,但我已经知道了。我说如果我忽略它们,它会起作用,但我需要在最终包和开发过程中使用它们。所以,我需要 gulp 来复制它们。如果没有,我将不得不一直制作 InDesign 包。太没有生产力了。
    • 您可以发布您所尝试的内容,因为您说您删除的文件夹没有被忽略吗?
    • 这是我正在复制的文件(全部但忽略了一些)这是我的文件 [".debug", "./**/*", "!**/.git", "!**/.git/**", "!**/eclipseWorkspace/**", "!**/node_modules/**", "!**/less/ **", "!**/sass/**", "!**/scss/**", "!**/theme/**", "!**/bin/**", "! .gitgnore", "!package.json", "!Gruntfile.js", "!gulpfile.js", "!.log"] 我做了 3 件事: 1 - 运行正常命令 => 错误, 2 - 像你说的那样忽略 .framework => Works, 3 - 只复制带有 .framework 的文件夹 => 错误
    • 在这种情况下,您可能需要检查和更改 .framework 的文件夹权限。
    • 我正在检查我的提交列表,我发现框架现在包含 2 个新内容:一个包含 info.plist 的 Resources 文件夹和一个 Current 文件夹同样的事情。删除此文件夹似乎可以解决复制问题,但我不确定我是否没有破坏其他任何东西。
    猜你喜欢
    • 2019-05-25
    • 1970-01-01
    • 2019-10-27
    • 2020-05-02
    • 1970-01-01
    • 2020-05-18
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多