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

2020-07-19 14:44:27 +08:00
 legendnan
今天想学习下 vue 。用 vue-cli 创建了一个项目。使用 vue ui 进行项目管理。
当使用 build 的时候 ,将我硬盘文件删除了。卧槽。
我在参数中将输出目录保存在了 H:\。其余没有改变。然后我点击运行,竟然自动将 h 盘下文件都删除了
11565 次点击
所在节点    Vue.js
114 条回复
legendnan
2020-07-19 15:16:22 +08:00
@loading 我就没想太多,就想看看生成了个什么东西。
love
2020-07-19 15:18:47 +08:00
@legendnan 你不看文档就改设置的吗,上上楼发的官方文档这个输出目录明明说:

outputDir

Type: string

Default: 'dist'

当运行 vue-cli-service build 时生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)。


===
默认的设置在当前目录./dist 下这么合理的设置瞎改,还不看文档地瞎改,这怪谁呢?
noe132
2020-07-19 15:19:03 +08:00
我只能说这是因为你没自己看文档就改配置造成的危险后果。
唯一可能的后续改进就是添加一条提示不要选择已有重要文件的目录。
就像 网上一大堆问 linux 解决文件权限问题, 上来就是 chmod 777,看的人也不管会有什么样的后果,复制粘贴就是运行
legendnan
2020-07-19 15:20:01 +08:00
@love
@noe132
确实是我个人的原因。
legendnan
2020-07-19 15:23:52 +08:00
@imzcg2 谢谢大佬文件已找回
hallDrawnel
2020-07-19 15:30:05 +08:00
不了解 vue 构建,但基本上所有编译输出类型的任务,指定的目录都应该是一个专用的目录,里面的内容是不安全的,直接设置成根目录心太大了。
看看能不能用数据恢复的工具尝试恢复一下吧。
Juszoe
2020-07-19 15:31:03 +08:00
我觉得吧,build 这个默认删除行为是有点危险,我之前也遇到过,不过没造成什么危害。
但是楼主把输出目录定为 H:\确实有点奇葩。
lqzhgood
2020-07-19 15:39:57 +08:00
默认就是在目录下 ./dist
你自己改成 H:

然后 H 被清空~

不明白就用默认设置~ 修改设置前请看文档
yiyi11
2020-07-19 15:42:40 +08:00
@Juszoe #27 因为有时候工程遇到一些构建的“疑难杂症”,我们倾向于把构建目录的产出物都删除干净了再重新生成。
VeryZero
2020-07-19 15:43:52 +08:00
上面好多人不看原文的吗?输出目录是根目录肯定会清空啊。

难道清空之前还得提示你输出目录里的文件是不是要清空?

这不合理,正常情况下输出目录里的文件当然要清空,都过期了
madpecker009
2020-07-19 15:44:15 +08:00
@legendnan sm.ms v2 图床 贴出代码让大家帮你看看
imzcg2
2020-07-19 15:48:36 +08:00
gabon
2020-07-19 15:52:32 +08:00
如果把目录指定到 /,然后以 root 身份执行会发生什么
EPr2hh6LADQWqRVH
2020-07-19 15:54:33 +08:00
直接删目录本来就是有问题的,有什么好说的,产生新的文件覆盖就完了。

前端对 build 这个概念根本理解不到位,就跟其他所有概念一样。

你见过 build 其他正经项目对时候,一个 make,特么整个项目目录没了的吗

build 和 clean 本来就是应该分开的两个过程,混为一谈就是混为一谈了,搞错了就是搞错了。

弄清楚之后改正就完了,哪那么多原因 jjyy 的
OHyn
2020-07-19 15:58:16 +08:00
这个 build 会清空输出目录的。。。。webpack 的 output.path 会自动删。。
jarnanchen
2020-07-19 15:58:52 +08:00
看了下楼主的操作
vue 这个设计肯定是有问题的, 至少对新手极不友好了
PopRain
2020-07-19 16:24:02 +08:00
vs 发布也是先删除发布目录,所以,不要发布到根目录,也不要发布到程序的主目录。。。。。
o0
2020-07-19 16:34:54 +08:00
看起来似乎也没有毛病,会先清空目录然后写入新文件。
podel
2020-07-19 16:38:59 +08:00
@jarnanchen 我也是觉得,这种操作对于新手一不小心就直接全删了。
我觉得至少这种操作必须 强警告 加 手动确认。 嫌烦可以单独加上 --disable-xxx-warning 之类的 参数。
LifStge
2020-07-19 16:47:31 +08:00
我感觉吧 确实是需要考虑的问题 输出目录需要时空目录 清除过期 没问题 但是首次设置 不需要判断下么
这么说吧 就是设置错了 然后直接就给清除了 确实不合适
其他很多普遍的做法 不都是 碰到类似情况 直接报错的么 (毕竟改文件夹下的文件 不是工具生成的过期文件) 需要用户手动删除 或者指定强制删除的的参数么

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

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

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

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

© 2021 V2EX