最新版 vue 竟然给我硬盘文件都删除了!什么鬼??

2020-07-19 14:44:27 +08:00
 legendnan
今天想学习下 vue 。用 vue-cli 创建了一个项目。使用 vue ui 进行项目管理。
当使用 build 的时候 ,将我硬盘文件删除了。卧槽。
我在参数中将输出目录保存在了 H:\。其余没有改变。然后我点击运行,竟然自动将 h 盘下文件都删除了
11254 次点击
所在节点    Vue.js
114 条回复
vinsony
2020-07-19 16:52:45 +08:00
@avastms 不是做前端的就别瞎指挥,还覆盖,搞笑呢
codermagefox
2020-07-19 16:57:06 +08:00
看到这个帖子有点庆幸没有继续写 Vue....各种意义上的...
ily433664
2020-07-19 17:32:56 +08:00
build 清空是正常操作吧,真能说设置输出为根目录是真没人想到的
lloovve
2020-07-19 18:06:30 +08:00
得了吧,这什么按照你这操作也都会出问题,makefile,等等
longjiahui
2020-07-19 18:09:08 +08:00
太惨了
Kilerd
2020-07-19 18:11:08 +08:00
是的,还是换 react 吧(
reus
2020-07-19 18:14:24 +08:00
传统的编译型语言,是不会清空输出目录的,不知道你们前端界为什么要选择这种设计。
如果让我来设计,就算要清空,也会做一些保险动作。例如输出目录是根目录就报错,或者发现这个输出目录不太像输出目录,例如包含一些不可能是输出文件的文件类型,就报错。又或者只删除特定后缀的文件。
清空输出目录,这个决定可能有合理性和必要性,但细节方面可以做得更好的。可能设计者没有经历过误删文件的痛苦吧。
runcelim
2020-07-19 18:35:22 +08:00
前端生成的文件名带有 hash 和时间戳的,每次修改后编译生成的文件不相同,肯定要删除 build 的
Arrowing
2020-07-19 18:55:44 +08:00
就算有提供文档,Vue 也推卸不了这个责任,而且还是风险这么巨大的问题。
按国内的这个程序员现状,我敢说,50% 以上的人都不会那么仔细去研究文档的,所以出现楼主这种情况的概率还挺大的。
任何工具的目标都是简单好用,提高效率的,从这点来说,Vue 就没达标。
就像你去玩跳伞,有牌子提醒你要系好降落伞啊,但是肯定还是会有人员帮你检查是否有系好,确保你的人身安全,而不是让你自己去弄,这是责任。
will0404
2020-07-19 19:07:32 +08:00
@avastms 和大多数用 make 构建的项目还真不一样,前端资源文件大多会在文件名上加 hash 以便刷新浏览器都能拿到最新文件,如果不清除 output 目录,长期下来会产生巨量的文件,需要手动清除。
你楼下说的对,不是吃这口饭的真别瞎指挥。
vigossliao
2020-07-19 19:09:02 +08:00
@Arrowing 说的对 windows 也有推卸不了责任,不过我看 linux 责任更大
will0404
2020-07-19 19:09:16 +08:00
当然我也觉得这个工具确实有问题,清除是要的,但应该作为非默认选项。
SilentDepth
2020-07-19 19:10:11 +08:00
楼主和下面部分人的评论,让我觉得软件开发的门槛不应该再低下去了
maichael
2020-07-19 19:10:51 +08:00
@avastms #33 不懂就不要 jjyy
podel
2020-07-19 19:12:00 +08:00
楼主磁盘是不是固态的。不是固态的马上用恢复软件还能恢复文件回来。
hakono
2020-07-19 19:15:38 +08:00
虽说 LZ 把输出目录指定到根目录的确挺少见
但是 vue 这种涉及到清空目录的危险操作,没有在文档里做很显眼的警告的确是有问题的

上面很多人都说文档有写、说 LZ 的问题之类的,这就是典型的不提别人着想,觉得某个领域才知道的特定知识是所有人共识了
为什么游戏(尤其主机游戏)在保存存档的时候都会提示“请勿关闭电源”,因为有经验的玩家知道关闭电源可能损坏存档,但是对于这方面不懂的人尤其是轻度游戏玩家来说,根本没人告诉他存档的时候关闭电源会损坏存档这事,这种玩家间的常识超出了他们的知识储备范围

还是那句话不要把特定领域的常识当成全人类共通的认识。这么想的人往往做出的产品,在用户体验方面也是非常糟糕的。
Biwood
2020-07-19 19:31:07 +08:00
“我在参数中将输出目录保存在了 H:\”

这可能是过于依赖语法糖的弊端吧。如果你自己配置过 gulp 或者 webpack,就会明白执行打包操作之前清空目标目录是很常见的操作。当然 vue-cli 的这个设计也确实不太好,你可以在 vue 的 github 官方仓库发布一个 issue,要求改进一下。
creanme
2020-07-19 19:33:45 +08:00
(这个不是 webpack 弄的吗
suzic
2020-07-19 19:36:44 +08:00
正常操作,你这写的有问题
dswyzx
2020-07-19 19:48:13 +08:00
谁能试一下如果输出的盘符为系统盘根目录,或者项目所在根目录.会发生什么奇妙旅程
会删除未占用文件然后结束,还是像 rm rf /*那样我干我自己

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

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

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

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

© 2021 V2EX