You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pnpm deploy误删项目及本地修改,求恢复与正确使用方法

解决pnpm deploy误删文件及安全执行问题

一、恢复被删除的文件

由于文件是硬删除(绕过回收站),可以尝试以下方案:

  • 优先利用VS Code内存留存:如果VS Code仍处于打开状态且之前编辑的文件未关闭,直接右键选择「另存为」,将文件保存到安全路径,这是最快的恢复方式。
  • 使用系统数据恢复工具:
    • Windows:用Recuva、DiskGenius等工具扫描文件所在磁盘,注意不要在该磁盘写入新数据(比如新建文件、安装软件),避免覆盖已删除的文件数据。
    • Mac:使用Disk Drill、Data Rescue等工具,操作逻辑同上,尽量停止磁盘的读写操作。
    • Linux:通过testdisk、photorec命令行工具扫描磁盘分区恢复文件。
  • 版本控制补充:如果有未提交的修改,除了远程仓库的历史提交,还可以执行git reflog查看所有本地提交记录,找回未推送的提交;或者运行git fsck --lost-found,Git会将丢失的对象存入.git/lost-found目录,可从中提取可能的文件内容。

二、安全运行pnpm deploy命令

首先明确:pnpm deploy的设计逻辑是清空目标目录后,将指定工作区的生产依赖及必要文件部署到该目录,这就是你用.(当前目录)执行时删光文件的核心原因。

解决ENOENT: no such file or directory, mkdir '/prod'错误

你之前直接指定/prod作为目标目录,这是系统根目录下的文件夹,普通用户无权限创建,因此报错。应改用相对路径,比如./prod(当前项目目录下的prod文件夹)。

安全执行的正确步骤

    1. 创建专门的空目标目录:提前在项目内创建一个用于部署的空文件夹,比如:
    mkdir -p ./deploy-target
    
    1. 执行正确的deploy命令:
    pnpm deploy --filter=app --prod ./deploy-target
    
    该命令只会将app工作区的生产依赖、编译产物(若有)等部署到deploy-target目录,完全不会影响原项目文件。
    1. 本地测试前做备份:执行命令前,建议将当前项目文件夹压缩备份,或者用git add . && git stash暂存所有修改,避免意外操作导致数据丢失。
    1. 确认--filter参数准确性:确保--filter=app指向你要部署的工作区,避免误操作其他模块。

内容的提问来源于stack exchange,提问作者Dan Engel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:17:29