术语“gulp”未被识别为 cmdlet 错误的名称

Aar*_*ron 5 windows powershell node.js gulp

所以我尝试在我们的构建服务器上运行 gulp 但不断收到上面的错误。如果我使用我的用户帐户登录构建服务器,一切正常,因为我在我的帐户下全局安装了 gulp,但是当 Jenkins 运行我的 powershell 脚本时,它会失败并出现错误:

术语“gulp”未被识别为 cmdlet 错误的名称

因此,我尝试在我的脚本中进行全局安装,以便它可以与 Jenkins 使用的任何用户一起安装。

然后我添加npm -g ls了powershell脚本,发现它是在系统用户下全局安装的:

C:\Windows\system32\config\systemprofile\AppData\Roaming\npm > gulp@3.9.0

由于我仍然收到错误,我采纳了这篇文章的建议,并在上面的目录中添加了一个路径变量,但仍然出现相同的错误。

有人知道我接下来可以尝试什么吗?我很困惑为什么它不起作用。

Mat*_*sen 1

确保环境变量gulp.exe中包含包含的目录$env:PATH。您可以使用该方法更新计算机范围的 PATH 变量 [Environment]::SetEnvironmentVariable()

假设 gulp 可执行文件的路径是 C:\Program Files\gulp\bin\gulp.exe

# Directory containing exe
$GulpFolderPath = 'C:\program files\gulp\bin'

# Retrieve user-agnostic PATH environment variable value
$CurrentEnvPath = [Environment]::GetEnvironmentVariable('PATH','Machine')

# Check if PATH already contains gulp
if($CurrentEnvPath -split ';' -notcontains $GulpFolderPath)
{
    # if not, update it
    $NewEnvPath = $CurrentEnvPath,$GulpFolderPath -join ';'
    [Environment]::SetEnvironmentVariable('PATH',$NewEnvPath,'Machine')
}
Run Code Online (Sandbox Code Playgroud)