从GitHub克隆Angular项目执行ng build提示找不到项目定义是否为旧仓库问题
ng build 提示找不到项目定义的原因说明
The build command requires to be run in an Angular project, but a project definition could not be found.
首先明确:该报错不必然由克隆的仓库为旧版本导致,核心原因是Angular CLI没有在当前执行命令的目录下识别到合法的Angular项目配置,常见触发场景如下:
- 命令执行目录错误:需要保证
ng build在项目根目录执行,也就是包含angular.json(Angular 6及以上版本)或旧版.angular-cli.json(Angular 1.x-5.x)的目录。如果执行命令时处于clone后的上级目录、src等子目录,都会触发该报错。 - 克隆的仓库缺失配置文件:部分仓库可能仅上传了业务源码,没有提交Angular项目配置文件,你可以直接查看当前目录下是否存在上述两个配置文件,不存在则属于该情况。
- 全局Angular CLI与项目版本不兼容:仅在这种场景下和项目旧版本有关,如果你的全局CLI版本过高,无法识别Angular 5及更早版本的
.angular-cli.json配置,就会报该错误。你可以先执行npm install安装项目本地的CLI依赖,再执行npx ng build调用项目本地的CLI完成构建,即可规避全局版本的兼容问题。
额外优化方案:你也可以直接查看项目package.json中的scripts配置项,若存在预设的build命令,直接执行npm run build即可跳过CLI环境识别环节。
内容的提问来源于stack exchange,提问作者Powershell21
相关产品推荐
相关产品推荐

