2016-07-13 3 views
0

Ich bekomme das Problem 'Bower' wird nicht erkannt, während ich mein Jenkins-Projekt laufen, wie ich viele andere Leute gesehen habe. Aber ich weiß, ich kann es durch die Einbeziehung der fest codierten Pfad'Bower' wird nicht erkannt, möchte Jenkins installieren grunt, bower

C:\Users\clang\AppData\Roaming\npm 

in meinem Pfad Umgebungsvariable zu arbeiten. So möchte ich das allerdings nicht machen.

Mein Ziel ist es, diese Jenkins-Konfiguration in der Lage zu sein, diese Befehle lokal herunterzuladen, zu installieren und auszuführen, ohne einen Pfad fest codieren zu müssen, so wie ich es auf anderen Computern ausführen möchte, die unterschiedliche Benutzer haben Pfade. Dies ist mein aktuelles Stapelscript, das ich gerade ausführe.

set PATH=%PATH%; %WORKSPACE%\.bin; 
call npm install 
call npm install bower 
call npm install grunt-cli 
call bower install 
call grunt build 

wenn Bower und Grunzen durch diese installiert sind, die bower.cmd und grunt.cmd sind in diesem Verzeichnis

C:\Program Files (x86)\Jenkins\workspace\ClearWork\.bin 

Der Befehl, den ich an der Spitze bin laufen in der Tat bewerten und Fügen Sie das Verzeichnis ein, in dem sich diese Befehlsdateien befinden, aber aus irgendeinem Grund bekomme ich immer noch den Fehler, dass Bower und Grunt nicht erkannt werden.

Nur um sicherzustellen, dass es kein Problem mit der Umgebungsvariablen Jenkins% Workspace% war, habe ich sogar den Speicherort hart codiert, der das gleiche Ergebnis ergab.

+0

Welche Verzeichnisort haben Sie von Ihrem Batch-Skript ausführen: ou sollte anrufen können? Doppelklicken Sie darauf? – aschipfl

+0

Wenn Jenkins das Batch-Skript ausgeführt wird, ist es von C: \ Programme (X 86) \ Jenkins \ Arbeitsbereich \ ClearWork –

+0

Ich war falsch zu sagen, dass ich verifiziert habe, ich könnte es verwenden, wenn ich zu beiden Orten in der Befehlszeile gehen und versuche bower install Ich bekomme zwei verschiedene Fehler. Für die in C: \ Benutzer \ clang \ AppData \ Roaming \ npm erhalte ich den Fehler "No Bower.json", wenn ich bower installiere, während ich den Fehler "Name muss Kleinbuchstaben sein ...", wenn ich bower installieren auf der einen unter C: \ Programme (x86) \ Jenkins \ Workspace \ ClearWork \ .bin –

Antwort

1

Option 1

call node_modules/.bin/bower install 
call node_modules/.bin/grunt build 

Option 2

Fügen Sie diese als Skripte zum package.json:

(innen package.json)

"scripts": { 
    "bower:install": "bower install", 
    "grunt:build": "grunt build" 
    } 

Jetzt y

call npm run bower:install 
call npm run grunt:build 

Da npm automatisch node_modules/.bin zum

Pfad fügt

+0

oh man , Danke für die Antwort. Ich ging mit Option 1. Ich weiß nicht, wie ich darüber nachdachte, die Pfadvariable zu verwenden und sie nicht stattdessen mit dem relativen Pfad aufzurufen. Ich denke, ich dachte, dass ich einen absoluten Pfad verwenden musste, da ich das in allen Beispielen gesehen hatte. Vielen Dank! –

+0

Kein Problem :-). Froh, dass ich helfen konnte. – CaptEmulation