如何防止 Laravel 项目被某些命令炸掉?以及被炸掉之后如何恢复?
有点标题党了,炸掉就是破坏的意思,而且是恢复有点费劲,还不知道有没有完全恢复的。
让我问出这个问题的事件是这样的:
首先我以我自己稀里糊涂弄成功的广播系统为基础尝试将其改成私有的。这是我稀里糊涂的方法:博客:laravel-websockets 实现 “低配版” 广播系统 。另外由于官方文档中文版实在是看不懂,就找了一个非官方的教程。这是那个非官方的教程:medium.com/@dennissmink/laravel-ec... 。由于没找到比较新的教程,所以用了这个好几年前的教程。
教程的这个命令报错了:
php artisan make:auth
搜了一下错误提示,找到了这套命令:
composer require laravel/ui
php artisan ui vue --auth
php artisan migrate
运行完我的项目就被炸了。Vite 自动退出。研究了一下发现 node_modules 目录下面的东西几乎被清空了。今天试的时候 node_modules 目录甚至都被删了。后来才反应过来新版的 Laravel 要用 Laravel Breeze。laravel/ui 也被废弃了。
第一次被炸的时候没什么经验,只好删了整个项目。然后想了一下被炸一次就删除效率太低了。之后首先想到的是备份整个项目,然后又想到了 git。没错,我之前没用 git。然后信心满满地用 git commit 了一次。之后又主动被炸了一次,再 commit 一次,然后恢复到之前的版本。结果发现还是不行,某些目录里的内容好像因为 gitignore 文件被忽略了,比如 node_modules,而炸我项目的命令好像改变了那些被忽略的内容,所以用 git 也回不去了。
我搜了一下 “’vite’ 不是内部或外部命令,也不是可运行的程序”,还好搜到一个说用 npm i 解决的。运行之后项目确实看起来正常了。但是不知道以后会不会有这么好的运气。
下面是相关问题列表:
- 这种项目被炸的情况是否比较常见,特别是对新手来说?
- 如果被炸比较常见的话,被炸的形式是否很多样?
- 如果被炸的形式很多样的话,是否有通用的恢复的方法?我怀疑只要包管理器的配置文件用 git 恢复了就能用 composer 和 npm 恢复。但是多出来的包能自动删除吗?
- 能尽量避免项目被炸吗?
- 上面我写的项目被炸的事件的原因是什么?跟我稀里糊涂地弄成功的那个方法是否有关?就是上面第一个链接里的那个方法。或者说只是关于 laravel/ui 的那三条命令的问题?
- 这个不会是 bug 吧?
推荐文章: