Azure Pipeline CI构建报错`sh: 1: ng: not found`,请问该错误含义是什么?
错误
sh: 1: ng: not found的含义及解决办法 这个错误的核心含义是:你的Azure Pipeline构建代理的Shell环境中,找不到ng命令。ng是Angular CLI的专属命令行工具,用来完成Angular项目的构建、打包、代码生成等操作。
常见的原因和对应的解决方法如下:
Angular CLI未安装在构建代理环境中
如果你的构建代理是全新的,或者之前没配置过Angular环境,直接执行ng命令肯定找不到。解决方式有两种:- 在Pipeline的脚本步骤中先全局安装Angular CLI:
npm install -g @angular/cli - 利用项目本地依赖的Angular CLI,用
npx ng代替直接ng调用(npx会自动查找项目node_modules/.bin下的命令)
- 在Pipeline的脚本步骤中先全局安装Angular CLI:
构建代理的PATH环境变量未包含
ng的路径
就算安装了Angular CLI,如果它的安装目录不在系统PATH里,Shell还是找不到命令。解决方式:- 若用全局安装,确认npm全局bin目录(通常是
~/.npm-global/bin或类似路径)已加入PATH; - 若用本地依赖,在执行
ng命令前先把本地依赖的bin目录加入PATH:export PATH=$PATH:./node_modules/.bin,再执行ng build之类的命令。
- 若用全局安装,确认npm全局bin目录(通常是
项目依赖未完成安装就执行
ng命令
如果你的项目把Angular CLI作为本地依赖(在package.json的devDependencies里),但还没执行npm install就直接跑ng命令,自然找不到。解决方式:在执行ng相关命令的步骤前,先添加npm install步骤完成依赖安装。
内容的提问来源于stack exchange,提问作者rejkid
相关产品推荐
相关产品推荐

