2014-03-12 5 views
5

Nach dem Erstellen meines Projektgerüsts möchte ich, dass Yeoman meine npm-Abhängigkeiten in einem Unterordner und nicht im Hauptprojektordner installiert. Ich habe meine package.json-Datei im Unterordner/gulp meines Projekts. Wie kann ich Yeoman die Abhängigkeiten installieren lassen? Hier ist meine aktuelle Funktion, die am Ende des Generators läuft:Yeoman-Generator: Projektabhängigkeiten im benutzerdefinierten Ordner installieren

this.on('end', function() { 
    if (!this.options['skip-install']) { 
    this.installDependencies({ 
     bower: false, 
     npm: true 
    }); 
    } 
}); 

Antwort

12

Schließlich diese Arbeit bekam durch das Verzeichnis zu ändern, bevor this.installDependencies() in index.js, wie in Laufen:

this.on('end', function() { 
    if (!this.options['skip-install']) { 

    // Change working directory to 'gulp' for dependency install 
    var npmdir = process.cwd() + '/gulp'; 
    process.chdir(npmdir); 

    this.installDependencies({ 
     bower: false, 
     npm: true 
    }); 
    } 
}); 

Hoffen, das hilft, wenn Sie ein anderes Projektgerüstaufbau haben.

+3

Alternativ können Sie auch einen Shell-Befehl (* nix oder windows) mit 'this.spawnCommand (" npm ", [" install "], {cwd: 'scripts'})' ausführen, wobei cwd auf das Verzeichnis verweist, in dem Sie sich befinden Ich möchte deinen Befehl ausführen. –