Grunt Task Runner um SFTP-Funktion erweitern
von Oliver Richter (Kommentare: 0)
Worum gehts?
Ich zeige hier einen Weg auf, den Grunt Task Runner um eine SFTP-Funktion (mit Hilfe des Moduls grunt-ssh) zu erweitern. Dabei will ich mein letztes Beispiel (Grunt Task Runner als Node.JS-Anwendung unter Windows) aufgreifen und um die SFTP-Funktion ergänzen.
Im meinem letzten Beispiel wurden mehrere LESS-Dateien zu einer einzigen CSS-Datei zusammen gefasst und diese anschließend minimiert und komprimiert. Ein "Watch"-Prozess hat zudem eine Änderung an den LESS-Dateien (durch z.B. Bearbeiten/Speichern einer der Dateien) registriert und den obigen Prozess erneut ausgelöst. Nun soll der Watch-Prozess bei jeder Änderung die Datei auch noch via SFTP auf einen bestimmten Webserver laden.
Das Modul "grunt-ssh" installieren und einrichten
Dazu wird zuerst das entsprechende Modul bzw. NPM-Paket grunt-ssh installiert. Wechseln Sie dazu in das jeweilige Arbeitsverzeichnis, öffnen Sie ein Terminal, Konsole bzw. eine Shell und verwenden Sie den folgenden Befehl zur Installation des Moduls:
npm install grunt-ssh --save-dev
Nun kann das Modul verwendet werden. Dies geschieht, in dem man es über die Datei Gruntfile.js aktiviert.
Die Datei Gruntfile.js sah im alten Beispiel bisher so aus:
module.exports = function(grunt) {
require('jit-grunt')(grunt);
grunt.initConfig({
less: {
developmentMIN: {
options: {
compress: true,
yuicompress: true,
optimization: 2
},
files: {
"css/screen.css": "less/importer.less"
}
},
watch: {
styles: {
files: ['less/**/*.less'],
tasks: ['less'],
options: {
nospawn: true
}
}
}
});
grunt.registerTask('default', ['less', 'watch']);
};
Und sie wird nun noch ergänzt um die Konfiguration für das Modul "grunt-ssh":
module.exports = function(grunt) {
require('jit-grunt')(grunt);
grunt.loadNpmTasks('grunt-ssh');
grunt.initConfig({
sftp: {
options: {
host: 'sub.domain.top',
username: 'ftp-user',
password: 'ftp-pass',
path: '/project/css/',
srcBasePath: 'css/',
showProgress: true
},
files: { src: 'css/styles.css' },
},
less: {
developmentMIN: {
options: {
compress: true,
yuicompress: true,
optimization: 2
},
files: {
"css/screen.css": "less/importer.less"
}
},
watch: {
styles: {
files: ['less/**/*.less'],
tasks: ['less', 'sftp'],
options: {
nospawn: true
}
}
}
});
grunt.registerTask('default', ['less', 'watch', 'sftp']);
};
Damit sollte nun via "Watch"-Prozess nach dem Speichern einer der beobachteten Dateien die fertige CSS-Datei via SFTP auf einen Server geladen werden.
Weitere Hinweise, nützliche Infos und Konfigurationsmöglichkeiten zur Erweiterung grunt-ssh sind zu finden unter https://www.npmjs.com/package/grunt-ssh
Vielen Dank an die Entwickler dort.
Sie befinden Sich in der Detailansicht eines Blog-Eintrags.
Um alle Blog-Einträge zu sehen, wechseln Sie bitte zur Nachrichten-Übersicht.
Einen Kommentar schreiben