能否配置VSTS Online构建最新CLI创建的Angular5项目?及ng命令异常排查
我来帮你逐一解决这两个问题:
问题1:是否可配置VSTS Online以构建使用最新ng CLI创建的Angular 5项目?
当然可以!VSTS Online(现更名为Azure DevOps Pipeline)完全支持构建Angular 5项目,而且你的现有环境(npm/5.6.0、node/v8.10.0、linux x64)刚好匹配Angular 5的官方要求(Angular 5推荐Node 8.x版本和npm 5.x版本)。
你只需要配置一套简单的构建步骤就能完成:
- 添加npm安装步骤,确保拉取所有项目依赖(包括本地的
@angular/cli) - 添加命令行/自定义npm脚本步骤,执行Angular构建命令
- 按需添加测试、打包发布等后续流程即可
问题2:执行
ng build时报错“sh: 1: ng: not found”,但npm install未失败,为何无法找到ng? 这个问题在CI/CD环境里非常常见!核心原因是:你通过npm install本地安装的@angular/cli,其可执行文件位于项目的node_modules/.bin目录下,但VSTS的Linux代理默认不会自动把这个路径加入系统的PATH环境变量,所以直接运行ng build时,系统找不到对应的命令。
给你几个实用的解决方案,任选其一即可:
- 用npx调用本地ng:npx会自动检索项目
node_modules中的可执行文件,把构建命令改成npx ng build就能直接生效 - 直接指定ng的本地路径:运行
./node_modules/.bin/ng build,直接指向本地安装的ng可执行文件 - 全局安装@angular/cli:修改npm安装步骤的命令为
npm install -g @angular/cli && npm install,这样ng会被安装到系统PATH能识别的位置,但要注意全局版本和项目依赖的版本保持一致 - 配置VSTS环境变量:在构建任务中添加环境变量
PATH=$PATH:./node_modules/.bin,让系统自动识别项目本地的可执行文件
另外还有个小技巧:你可以在项目的package.json中添加自定义脚本:
"scripts": { "build": "ng build" }
之后在VSTS里执行npm run build即可——npm会自动在node_modules/.bin中查找ng命令,无需额外配置。
内容的提问来源于stack exchange,提问作者DFBerry
相关产品推荐
相关产品推荐

