运行 post 在 Octopus 中部署 powershell 步骤期间的 npm 命令

Run npm command during post deploy powershell step in Octopus

我有一个 nodejs 应用程序,我通过 teamcity built/packaged 并通过 Octopus 部署门户部署到我们的一台服务器(安装了节点)。 一切正常,直到我从章鱼内部进入 post deploy powershell 脚本。

在其中一个代码块中,我有 npm commands 抛出错误 npm not recognised。当我 运行 服务器上的 power-shell 脚本时,一切正常但是当我尝试通过章鱼 post 部署脚本 运行 时,我得到了如上所述的错误。

我知道已经安装了 node /npm 并且环境变量 re:nodejs 设置正确,除非我遗漏了其他东西,否则它仍然无法正常工作。

我正在尝试做的一个简单的伪代码是这样的:

$deploymentDir = 'D:\Apps\<appname>\<octopus-version-number>' 
    $name = "service" 
    cd $deploymentDir
    if($name){
         Write-Host "link node-windows..."
         npm link node-windows //node-windows is installed globally



    }

else{

    } 

除非我遗漏了某些东西,否则我怎样才能通过章鱼将它送到 运行?

有可能 Octopus master/tentacle 服务 不同的用户 上运行,同时检查该用户的环境变量.

如果您无法找到根本原因,替代方法是在章鱼中定义一个名为 "npmPath" 的目标范围变量(值可能因目标而异)以存储 npm 路径

现在,您可以在脚本中使用 $npmPath 变量。