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. 

Zurück

Einen Kommentar schreiben

Bachten Sie: Für die Zuordnung Ihrer Nachricht werden die hier anzugebenden Daten Name, E-Mailadresse, Ihr Kommentar gespeichert. Sofern Sie den Wunsch der E-Mail-Benachrichtigung angegeben haben, wird aufgrund technischer Notwendigkeit auch dieser Wert gespeichert. Durch Absenden des Formulars erklären Sie sich damit einverstanden. Alternativ kontaktieren Sie mich bitte über meine E-Mailadresse oder Telefon.
Detaillierte und weitere Hinweise, insb. zum Widerrufsrecht finden Sie in der Datenschutzerklärung.

Sie befinden Sich in der Detailansicht eines Blog-Eintrags.

Um alle Blog-Einträge zu sehen, wechseln Sie bitte zur Nachrichten-Übersicht

Wie kann ich Ihnen helfen?

Sie erreichen mich über mein Kontaktformular