首页 > 解决方案 > 使用 Angular 应用程序在 Azure DevOps 中构建发布管道 - 找不到包含 package.json 的工作文件夹

问题描述

我正在为 Visual Studio 2017 中的 ASP.NET Core Angular 应用程序设置发布管道,并且在查找 package.json 文件的 npm 任务时遇到了重大问题。我知道该文件在那里 - 它最初位于 ClientApp 文件夹中,我还将它添加到主文件夹和 dist 文件夹以进行测试,同时我试图找出它为什么不喜欢我的文件!

我确实尝试了所有可能性,包括使用 $(System.DefaultWorkingDirectory)。这是我第一次在 Azure DevOps 工作,也是我第一次尝试设置管道。我无休止地搜索,甚至尝试重新排队构建管道。

我完全有可能设置了错误类型的发布管道。我选择了一份空工作,我有 3 个任务 - npm install、npm build 和发布工件(我一直在尝试遵循一些在线教程)。我还从 ASP.Net Core 模板创建了构建管道,运行了 yaml 文件等。

作为说明,我确实安装了 node.js 和 angular,并确保正确的文件在我的 dist 文件夹中。我添加了一个 web.config 文件,将它添加到我的 Angular json 文件中的资产中。我还在 package.json 文件夹中添加了一个小脚本来实际构建。

  "project": {
    "name": "Test"
  },
  "apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "src/web.config"
      ],
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
      "styles": [
        "styles.css",
        "../node_modules/bootstrap/dist/css/bootstrap.min.css"
      ],
      "scripts": [],
      "environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],
 "name": "Test",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "prod-build-dev": "ng build --prod --build-optimizer",
    "prod-build-staging": "ng build --prod --configuration=staging --build-optimizer"
  },

我希望 npm 任务能够找到 package.json 文件,但这不是正在发生的事情。请查看这些错误消息,每个错误消息都针对包含 package.json 的工作文件夹的不同输入显示。一是找不到目录。另一方面,它找不到文件。

错误 #1:错误:Npm 失败,返回码:4294963238

搭配:

14 error enoent ENOENT: no such file or directory, open 'D:\a\r1\a\package.json' 2019-08-10T15:08:12.2500818Z 15 error enoent 这与 npm 无法找到文件。

错误 #2:错误:ENOENT:没有这样的文件或目录,stat 'D:\a\r1\a\Test\ClientApp\dist'

标签: angularazure-devopspipeline

解决方案


使用 Angular 应用程序在 Azure DevOps 中构建发布管道 - 找不到包含 package.json 的工作文件夹

根据错误信息:

没有这样的文件或目录,打开 'D:\a\r1\a\package.json'

看来您没有为选项使用正确的路径Working folder that contains package.json。您正在工件目录的根文件夹中搜索 package.json 文件。 D:\a\r1\a\.

要解决此问题,您应该指定工作文件夹,例如$(System.DefaultWorkingDirectory)\Test\Test\ClientApp

注意:您应该在构建管道时发布项目/解决方案,否则我们无法在发布管道中获取文件。

希望这可以帮助。


推荐阅读