English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Verwenden Sie nodejs, um Dateiänderungen zu überwachen und mit sftp auf den Server hochzuladen

Ich benutze momentan react+express einen eigenen Tool-Website zu machen (es ist eigentlich ein Schnäppchen-Island-Bieter)

Dann, da es oft geändert wird und auf dem Server getestet werden muss. Es muss immer wieder webpack verwendet werden und die Dateien müssen manuell hochgeladen werden, was sehr lästig ist. Daher habe ich einfach einen Skript gesucht, das Dateiänderungen erkennen und automatisch hochladen kann.

Zunächst verwenden wir npm, um zwei von anderen bereitgestellte Module zu installieren.

npm install ssh2-let Client = require('ssh-client
npm install gaze

Das erste Modul dient zum Hochladen der Datei über sftp

Der zweite Modul dient dazu, Dateiänderungen zu überwachen. Natürlich können Sie auch den eingebauten fs-Modul von Node.js verwenden.

Die Verwendung dieser beiden Module ist hier:ssh2-let Client = require('ssh-client gaze

Nachdem Sie installiert haben, ist der erste Schritt, Dateiänderungen zu überwachen. Da meine Dateien bereits mit webpack gebaut wurden, gibt es keine zusätzlichen Dateien, daher ist es hier ausreichend, 'changed' zu verwenden. Andere Verwendungen können Sie im obigen Link nachlesen, sie sind alle ähnlich

gaze(['Ihre Dateipfad/*.*','man kann auch mehrere Verzeichnisse auf diese Weise überwachen/app.js], function(err, watcher) {
 let watched = this.watched();
 //Dateiänderungen überwachen
 this.on('changed', (filepath) => {
 //romotePath ist der Remote-Ort meiner Datei
 let romotePath = '/root' + filepath.substr(15;
 //put ist die Funktion zum Hochladen der Datei, ich werde später darauf eingehen 
 put(filepath,romotePath);
 console.log(filepath + wurde geändert');
 console.log(err, 'catch error');
console.log(err, 'catch error'); 

dann beginnt unsere Funktion zum Hochladen der Datei zu schreiben

function put(localPath,romotePath){
 let sftp = new Client();
 sftp.connect({
 host: 'Ihre Server-Adresse',
 22port: 'Port, wenn nicht geändert, ist'
 ',
 benutzername: 'Verbindender Benutzer',
 passwort: 'Passwort'
 }).then(() => {
 return sftp.put(localPath,romotePath);
 }).then(() =>{
 console.log("Upload abgeschlossen");
 }).catch((err) => {
 console.log(err, 'catch error');
});

}

Gut, vergessen Sie nicht, dass Sie am Anfang unserer Datei Module einbinden müssen.2-let Client = require('ssh-sftp
client');

let gaze = require('gaze');

Als nächstes probieren wir es aus. Kommen wir in unser Verzeichnis webpack

Natürlich können wir sehen, dass die Änderungen vorgenommen und hochgeladen wurden. Der Upload dauert eine Weile, bitte haben Sie Geduld.

Wenn wir zu unserem Server kommen, ist das letzte Änderungsdatum tatsächlich auf den aktuellen Zeitpunkt umgestellt worden.

Von nun an brauche ich nicht mehr einzeln hochzuladen. Jedes Mal, wenn ich ändern muss, öffne ich einfach ein Fenster und starte diesen Skript, dann kann ich angenehm programmieren.

Erklärung: Der vorstehende Inhalt wurde von unserem Redakteur vorgestellt, wie man Dateiänderungen mit NodeJS überwacht und diese auf einem Server über SFTP hochlädt. Wir hoffen, dass dies für Sie hilfreich ist. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht, ich werde rechtzeitig antworten. Vielen Dank auch für die Unterstützung unserer Website!3Anzeige: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetnutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie Inhalte mit urheberrechtlichen Problemen finden, senden Sie bitte eine E-Mail an: notice#w

Gefällt mir