4
votes

So I am trying to run gulp on our build server but keep getting the error above. Everything works fine if I log into the build server with my user account as I installed gulp globally under my account however when Jenkins runs my powershell script it fails with the error:

The term 'gulp' is not recognized as the name of a cmdlet error

So I tried to install globally in my script so that it installs with whatever user Jenkins uses.

Then I added npm -g ls to The powershell script and found that it is installed globally under a system user:

C:\Windows\system32\config\systemprofile\AppData\Roaming\npm > [email protected]

Since I am still getting the error I took the advice from this post and added a path variable with the directory above however still the same error.

Anyone have ideas on what I can try next? Im stumped as to why it is not working.

2
Which user account is Jenkins using? Can you log into this account and try to run gulp from the command line?Mario Tacke
it is using a system user. I cannot login with that user.Aaron
In that case, can you run Jenkins as your user account and see if it will go through?Mario Tacke

2 Answers

1
votes

Make sure the directory containing gulp.exe is contained in the $env:PATH environment variable. You can update the machine-wide PATH variable with the [Environment]::SetEnvironmentVariable() method.

Let's imagine the path to the gulp executable is 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')
}
0
votes

Finally a true GULP solution

After having searched for a solution the past two days without success, a colleague assisted me by running the following commands, the first installs gulp locally and globally and the second which I attribute the success for gulp finally running, installs the angular cli globally:

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

Afterwards I ran this command to update npm packages globally and locally; gulp finally worked:

npm install -g npm

Now running gulp -v yields success:

CLI version: 2.2.0
Local version: 4.0.2

NB: My OS is Windows 10 64 bit architecture latest updates on the 17th of July 2019. No proxy settings, no network ristrictions!!

If you do have a proxy before the internet configure your .npmrc file found by running the command npm config edit from your command line application:

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

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