Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Angular Application在Azure DevOps中构建发布管道-找不到包含package.json的工作文件夹_Angular_Azure Devops_Pipeline - Fatal编程技术网

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

使用Angular Application在Azure DevOps中构建发布管道-找不到包含package.json的工作文件夹,angular,azure-devops,pipeline,Angular,Azure Devops,Pipeline,我正在从Visual Studio 2017为我的ASP.NET Core Angular应用程序设置发布管道,在npm任务定位package.json文件时遇到了重大问题。我知道这个文件就在那里——它最初在ClientApp文件夹中,我还将它添加到主文件夹和dist文件夹中,以便在我试图找出它不喜欢我的文件的原因时进行测试 我已经尝试了各种可能,包括使用$(System.DefaultWorkingDirectory)。这是我第一次在Azure DevOps工作,也是我第一次尝试设置管道。我一

我正在从Visual Studio 2017为我的ASP.NET Core Angular应用程序设置发布管道,在npm任务定位package.json文件时遇到了重大问题。我知道这个文件就在那里——它最初在ClientApp文件夹中,我还将它添加到主文件夹和dist文件夹中,以便在我试图找出它不喜欢我的文件的原因时进行测试

我已经尝试了各种可能,包括使用$(System.DefaultWorkingDirectory)。这是我第一次在Azure DevOps工作,也是我第一次尝试设置管道。我一直在谷歌上搜索,甚至尝试重新排队构建管道

我完全有可能设置了错误类型的发布管道。我选择了一个空作业,我有3个任务——npm安装、npm构建和发布工件(我一直在尝试学习一些在线教程)。我还从ASP.Net核心模板创建了构建管道,运行了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"
      }
    }
  ],
我希望npm任务能够找到package.json文件,但实际情况并非如此。请查看这些错误消息,每个错误消息都显示了包含package.json的工作文件夹的不同输入。在一种情况下,它找不到目录。另一方面,它找不到该文件

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

搭配:

14错误eNONT eNONT:没有这样的文件或目录,请打开 'D:\a\r1\a\package.json'2019-08-10T15:08:12.2500818Z 15错误事件 这与npm无法找到文件有关

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


欢迎来到痛苦的Azure devops构建世界。一旦你在一年左右的时间里习惯了它们,它们就不算太糟糕了,但是它们仍然是一个令人头疼的问题,没有什么有用的文档(或者有用的帖子)

理论上,您希望您的构建步骤在最基本的层面上看起来像这样:

  • npm安装
  • ng构建
  • 复制/发布工件
1。npm安装

npm任务
-v1*

命令
:安装

包含package.json的工作文件夹
:使用
..
导航到
Test>Test>ClientApp
(给出您对回购结构的最新评论)

2。ng构建

注意:我们使用一个PS脚本来做一些额外的工作,但它可以归结为运行ng构建

PowerShell
-v2*

类型
:内联

Script
:ng构建--输出路径=$(build.ArtifactStagingDirectory)

Advanced>工作目录
:使用
..
导航到您的
Test>Test>ClientApp
目录

> Test
  > Test
    > ClientApp -- top level dir
      > src
      > e2e
      angular.json
      package.json
      etc...
3。复制/发布工件

发布构建工件
-v1*

发布路径:$(Build.ArtifactStagingDirectory)

选择您的姓名和位置

理论上,这是一个很大的理论,应该是可行的。无论您将Angular应用程序埋得有多深,只要它具有标准Angular cli目录结构,都应该可以从该顶级目录进行构建

> Test
  > Test
    > ClientApp -- top level dir
      > src
      > e2e
      angular.json
      package.json
      etc...

欢迎来到痛苦的Azure devops构建世界。一旦你在一年左右的时间里习惯了它们,它们就不算太糟糕了,但是它们仍然是一个令人头疼的问题,没有什么有用的文档(或者有用的帖子)

理论上,您希望您的构建步骤在最基本的层面上看起来像这样:

  • npm安装
  • ng构建
  • 复制/发布工件
1。npm安装

npm任务
-v1*

命令
:安装

包含package.json的工作文件夹
:使用
..
导航到
Test>Test>ClientApp
(给出您对回购结构的最新评论)

2。ng构建

注意:我们使用一个PS脚本来做一些额外的工作,但它可以归结为运行ng构建

PowerShell
-v2*

类型
:内联

Script
:ng构建--输出路径=$(build.ArtifactStagingDirectory)

Advanced>工作目录
:使用
..
导航到您的
Test>Test>ClientApp
目录

> Test
  > Test
    > ClientApp -- top level dir
      > src
      > e2e
      angular.json
      package.json
      etc...
3。复制/发布工件

发布构建工件
-v1*

发布路径:$(Build.ArtifactStagingDirectory)

选择您的姓名和位置

理论上,这是一个很大的理论,应该是可行的。无论您将Angular应用程序埋得有多深,只要它具有标准Angular cli目录结构,都应该可以从该顶级目录进行构建

> Test
  > Test
    > ClientApp -- top level dir
      > src
      > e2e
      angular.json
      package.json
      etc...
使用Angular Application在Azure DevOps中构建发布管道-找不到包含package.json的工作文件夹

根据错误消息:

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

您似乎没有为包含package.json的选项
工作文件夹使用正确的路径。您正在工件目录的根文件夹中搜索package.json文件。
D:\a\r1\a\

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

注意:您应该在构建管道时发布项目/解决方案,否则,我们可能无法