@
avastms 确实是没有根据 build 生成的文件跟踪来做删除,而用了最简单的清空 output 目录的方法,但我觉得这个操作可以理解,并非前端浮躁肤浅。
加后缀不是为了多版本共存,是因为把指纹或者说版本号放在 url 的 querystring 里其实不是最完美的方案,存在一定风险(有些浏览器认为 querystring 变化后资源可以复用;持续集成发布中遇到资源引用更新但实际内容没来得及更新时 CDN 会用新 URL 缓存旧资源,而你不可能每次发布都刷一遍 CDN 缓存; 。。。),而目前公认的方案是放在 filename 里。所以 rebuild 需要清空上次内容,而最简单的 clean 就是清空整个目录。
@
avastms 总喜欢和其他 C 系的项目比,但是这里的比较是不对等的。前端的这些 CLI build 产生的 output 目录是 release-ready 的,你 copy 这个目录然后拿个 nginx 托管一下就能跑的,这是这些工具的意义。make 一下直接就地生成二进制能直接目录打包分发给客户么?你要做 installer 或者 zip 打包你的软件,是不是提前要保证目标目录是干净的?你不希望你的 installer.exe 一释放你的学习资料跑出来了吧,你的 Assembly 过程不希望最终的 package 混进奇怪的东西吧。 所以说这个和传统的 clean 是有差别的。