术语“gulp'不被识别为cmdlet错误的名称

时间:2016-02-02 16:58:58

标签: node.js windows powershell gulp

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

  

术语' gulp'不被识别为cmdlet错误的名称

所以我尝试在我的脚本中全局安装,以便安装Jenkins使用的任何用户。

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

  

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

由于我仍然收到错误,我接受了this post的建议,并在上面的目录中添加了一个路径变量,但仍然是同样的错误。

任何人都有关于我接下来可以尝试的想法吗?我难以理解为什么它不起作用。

2 个答案:

答案 0 :(得分:0)

确保包含gulp.exe的目录包含在$env:PATH环境变量中。您可以使用[Environment]::SetEnvironmentVariable()方法更新 machine -wide PATH变量。

让我们想象一下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')
}

答案 1 :(得分:0)

最后是真正的GULP解决方案

过去两天没有成功找到解决方案后,一位同事通过运行以下命令为我提供了帮助,第一个在本地和全局安装gulp,第二个我将gulp的成功归功于最终运行,安装了cli全球:

npm i -g gulp gulp
npm i @angular/cli -g

然后,我运行此命令以全局和本地更新npm软件包。 gulp终于奏效了:

npm install -g npm

现在运行gulp -v可以成功:

CLI version: 2.2.0
Local version: 4.0.2

NB:我的操作系统是Windows 10 64位体系结构的最新更新,于2019年7月17日发布。没有代理设置,没有网络限制!

如果在Internet之前确实有代理,请通过从命令行应用程序运行命令npm config edit配置找到的.npmrc文件:

proxy=x.x.x.x:PORT/
https-proxy=x.x.x.x:PORT/

prefix=C:\npm\node_modules
cache=C:\npm\cache