V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiangyuecn
V2EX  ›  Node.js

gulp.spritesmith 大点的雪碧图 gulp.dest 保存的文件没法手动删除,干掉 node.exe 进程就可以删了,如何解决?

  •  
  •   xiangyuecn · 2018-07-03 21:54:21 +08:00 · 3274 次点击
    这是一个创建于 2095 天前的主题,其中的信息可能已经有所发展或是发生改变。

    栗子代码:

    var gulp = require('gulp');
    var spritesmith = require('gulp.spritesmith');
    
    
    gulp.src(["大点的图片.jpg"]).pipe(spritesmith({
    	imgName: 'sprite.png',
    	cssName: 'sprite.css'
    })).pipe(gulp.dest('output/'));
    
    setTimeout(function(){},999999);//模拟 http server 不退出,其实是一个 http api 服务器
    

    package.json

    {
      "dependencies": {
        "gulp": "3.9.1",
        "gulp.spritesmith": "6.9.0"
      }
    }
    

    测试发现生成的图片文件大小:

    1. 比较小时,在文件管理器里面可以删掉

    2. 比较大时(测试了 300k、500k ),在文件管理器里面删不掉,连累文件夹也无法删除

    3. 直接 gulp.src(["大点的图片.jpg"]).pipe(gulp.dest('output/')) 输出的图片可以删掉

    附带实验图片 http://d.hiphotos.baidu.com/zhidao/pic/item/a8773912b31bb051db0967cf307adab44aede02c.jpg (其实是多个源合并生成的文件比较大,测试直接使用一个超大的源立马复现问题)


    目测是 spritesmith 的问题,但是萌新刚入门 nodejs,找不到原因,请教 v2 诸位 nodejs 大牛

    有米有类似的或者就是本问题的解决办法

    2 条回复    2018-07-04 21:57:48 +08:00
    xiangyuecn
        1
    xiangyuecn  
    OP
       2018-07-03 22:08:04 +08:00
    这个是实验图片,500 多 k


    运行生成雪碧图,恭喜,文件夹没法删除了,除非 node 退出


    刚才又试了一下,一个个删除生成的文件可以删除,但全选一次性删除无法删除,不知道是不是 node 的什么奇技淫巧 (滑稽
    直接删除文件夹是 100%无法删除的
    xiangyuecn
        2
    xiangyuecn  
    OP
       2018-07-04 21:57:48 +08:00
    自己解决了,在 gulp.dest 前面加上一层 pipe(buffer())就没有这个问题了

    直接用的 GitHub readme 上的例子没有这个问题,加个 buffer 又导入了一个包,咳!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1536 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:15 · PVG 01:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.