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

2018-07-03 21:54:21 +08:00
 xiangyuecn

栗子代码:

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 大牛

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

3288 次点击
所在节点    Node.js
2 条回复
xiangyuecn
2018-07-03 22:08:04 +08:00
这个是实验图片,500 多 k


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


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

直接用的 GitHub readme 上的例子没有这个问题,加个 buffer 又导入了一个包,咳!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/467909

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX