Reputation: 1411
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.
Upvotes: 5
Views: 5741
Reputation: 688
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
Upvotes: 0
Reputation: 174690
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')
}
Upvotes: 1