clasp push失败(即使使用force参数):提示文件已存在问题求助
解决 clasp push 重复提示「Code 文件已存在」错误
问题详情
- 基于clasp的TypeScript文档创建项目,首次
clasp push执行成功 - 后续执行
clasp push时抛出错误:GaxiosError: A file with this name already exists in the current project: Code
- 命令末尾却显示成功推送3个文件:
└─ /Users/jonathantuzman/dev/personal/ev-chargers-appscript/appsscript.json └─ /Users/jonathantuzman/dev/personal/ev-chargers-appscript/Code.js └─ /Users/jonathantuzman/dev/personal/ev-chargers-appscript/Code.ts Pushed 3 files. - 已删除scripts.google.com上的对应文件,错误仍持续出现
解决步骤
清除clasp本地状态缓存
删除本地记录项目状态的文件,解决本地与远程状态不一致的问题:rm .clasp.state.json强制推送覆盖远程
使用--force参数跳过冲突检测,强制将本地文件同步到远程:clasp push --force规范TypeScript项目配置(可选但推荐)
避免TS与编译后的JS文件同名冲突,调整tsconfig.json和.claspignore:- 在
tsconfig.json中设置编译输出目录:{ "compilerOptions": { "outDir": "./dist" }, "include": ["src/**/*"] } - 更新
.claspignore,忽略源文件目录:src/ node_modules/ .git/
- 在
原因说明
- 本地
.clasp.state.json缓存的远程文件状态已过期,导致推送时误判文件重复 - 曾在scripts.google.com手动编辑文件,改变了远程文件的元数据,本地缓存未同步
- 未配置TS编译输出目录时,同名的
.ts和.js文件会触发远程项目的命名冲突检测
内容的提问来源于stack exchange,提问作者Jonathan Tuzman
相关产品推荐
相关产品推荐

