Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 使用azure构件通过azure devops组织共享NPM脚本/应用程序_Node.js_Azure Devops_Npm Install_Azure Artifacts - Fatal编程技术网

Node.js 使用azure构件通过azure devops组织共享NPM脚本/应用程序

Node.js 使用azure构件通过azure devops组织共享NPM脚本/应用程序,node.js,azure-devops,npm-install,azure-artifacts,Node.js,Azure Devops,Npm Install,Azure Artifacts,我有一个git存储库,其中包含一个node.js“app”(仅1个文件)及其package.json 我需要使用来自其他组织的azure devops管道的“应用程序”,所以我在该nodejs项目中创建了一个管道,在基于NPM的azure工件提要上对该脚本进行版本控制+发布 在另一个组织中,在我想要使用该应用程序的管道中,我使用了一个“npm”任务,配置如下: steps: - task: Npm@1 displayName: 'npm install MyPackage' inputs

我有一个git存储库,其中包含一个node.js“app”(仅1个文件)及其package.json

我需要使用来自其他组织的azure devops管道的“应用程序”,所以我在该nodejs项目中创建了一个管道,在基于NPM的azure工件提要上对该脚本进行版本控制+发布

在另一个组织中,在我想要使用该应用程序的管道中,我使用了一个“npm”任务,配置如下:

steps:
- task: Npm@1
  displayName: 'npm install MyPackage'
  inputs:
    command: custom
    verbose: false
    customCommand: 'install MyPackage'
    customRegistry: useFeed
    customFeed: '...some-guid....'
安装似乎还可以(我在第二个组织中创建了一个提要,第一个组织的提要作为上游源,如文档中所示)

现在,我应该如何在下一个管道任务中执行该脚本? 我试图连接到代理,但当我运行“MyPackage”命令时,我得到了“commandnotfound”。 脚本安装在哪里?我该如何执行它? 有什么东西要放在路上吗? 我应该使用“-g”选项吗

谢谢你的帮助:)

使用请求的日志更新:

任务日志:

Starting: npm custom
==============================================================================
Task         : npm
Description  : Install and publish npm packages, or run an npm command. Supports npmjs.com and authenticated registries like Azure Artifacts.
Version      : 1.182.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/npm
==============================================================================
/usr/local/bin/npm --version
6.13.7
/usr/local/bin/npm config list
; cli configs
metrics-registry = "https://pkgs.dev.azure.com/org/_packaging/....some-guid..../npm/registry/"
scope = ""
user-agent = "npm/6.13.7 node/v13.11.0 darwin x64"

; environment configs
userconfig = "/Users/.../AGENTS/vsts-agent-osx-x64-2.179.0-AZURE-01/_work/10/npm/33366.npmrc"

; userconfig /Users/.../AGENTS/vsts-agent-osx-x64-2.179.0-AZURE-01/_work/10/npm/33366.npmrc
registry = "https://pkgs.dev.azure.com/org/_packaging/....some-guid..../npm/registry/"

; builtin config undefined
prefix = "/usr/local"

; node bin location = /usr/local/Cellar/node/13.11.0/bin/node
; cwd = /Users/.../AGENTS/vsts-agent-osx-x64-2.179.0-AZURE-01/_work/10/s
; HOME = /Users/...
; "npm config ls -l" to show all defaults.

/usr/local/bin/npm install -g MyPackage
+ MyPackage@1.0.20210216-1
added 198 packages from 99 contributors in 18.319s
Finishing: npm custom
以下是第二个定义:

steps:
- script: |
   echo "1"
   node MyPackage
   
   echo "2"
   MyPackage
   
  displayName: 'Command Line Script'

以及关联的执行日志:

Starting: Command Line Script
==============================================================================
Task         : Command line
Description  : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
Version      : 2.182.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
==============================================================================
Generating script.
========================== Starting Command Output ===========================
/bin/bash --noprofile --norc /Users/.../AGENTS/vsts-agent-osx-x64-2.179.0-AZURE-01/_work/_temp/7fe7833a-ce7d-48af-ab8f-1fcf2e740c36.sh
1
internal/modules/cjs/loader.js:979
  throw err;
  ^

Error: Cannot find module '/Users/.../AGENTS/vsts-agent-osx-x64-2.179.0-AZURE-01/_work/10/s/MyPackage'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:976:15)
    at Function.Module._load (internal/modules/cjs/loader.js:859:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
2
/Users/.../AGENTS/vsts-agent-osx-x64-2.179.0-AZURE-01/_work/_temp/7fe7833a-ce7d-48af-ab8f-1fcf2e740c36.sh: line 5: MyPackage: command not found
##[error]Bash exited with code '127'.
Finishing: Command Line Script

我们可以

例如,您在第一个组织中创建一个提要,并将npm包添加到提要中,现在您要在第二个组织中使用该包,我们需要在第二个组织提要中设置上游源,例如
azure-feed://myOrg/myProject/myFeed@本地
,然后我们可以在第二个组织管道中安装和使用该包

您还可以查看此项以了解更多详细信息

更新1

我需要找到安装它的路径

我们可以添加任务
命令行
并运行
npm list
,以查看当前位置已安装的非全局库。检查此项并获取更多详细信息


安装路径是
$(Build.SourcesDirectory)/node\u modules
,我们可以添加task bash并运行ls
'$(Build.SourcesDirectory)/node\u modules'
进行检查。

最终发现问题:

  • 首先,我必须使用
    -g
    选项全局安装软件包
  • 第二,我必须使用
    npx
    来 运行它
  • 第三,我必须用以下内容更新
    package.json

当我运行“MyPackage”命令时,我得到了“command not found”
您能在这里共享详细日志和任务定义吗?您也可以检查此故障排除我已经共享了NPM安装部件的任务定义。我的可执行文件/软件包的安装似乎还可以,即使是在整个组织中,这也不是我的要求,因为这部分工作正常。问题是运行“包”。我不知道它安装在哪里。我认为解决方案的一部分是在.js文件的顶部添加“#!/usr/bin/env node”,这样就可以在前面没有“node”的情况下执行。但是我仍然需要找到它的安装路径…嗨@LiohAu,我已经更新了答案,检查更新1,我们可以运行cmd npm列表来查看安装路径。嗨,你可以随意接受你的答案。谢谢
  "bin": {
    "NAME_OF_THE_BINARY": "./FILE_TO_EXECUTE.js"
  },