基础Angular应用在Azure构建管道中npm install命令执行失败
问题原因与解决方法
问题根源
你在Npm@1任务的workingDir字段里填了package.json,但这个参数要求的是存放package.json的目录路径,不是文件本身。npm会尝试在你指定的路径下去找.npmrc文件,结果变成了package.json/.npmrc,这显然不是合法目录,因此抛出ENOTDIR错误。
修复方案
把两个Npm任务里的workingDir值改成package.json所在的目录(如果package.json在仓库根目录,直接填.或者留空):
修改后的YAML代码:
trigger: branches: include: - refs/heads/master jobs: - job: Job_1 displayName: Agent job 1 pool: vmImage: ubuntu-latest steps: - checkout: self fetchDepth: 1 - task: Npm@1 displayName: npm install inputs: workingDir: . verbose: false - task: Npm@1 displayName: npm custom inputs: command: custom workingDir: . verbose: false customCommand: npm run build - task: ArchiveFiles@2 displayName: Archive $(Build.BinariesDirectory) - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop'
补充说明
如果你的package.json不在根目录(比如在src文件夹下),就填对应目录路径作为workingDir的值,务必保证这个路径是目录而非具体文件。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

