Maison  >  Article  >  interface Web  >  Utilisez nodejs pour surveiller les modifications de fichiers et utilisez sftp pour les télécharger sur le serveur

Utilisez nodejs pour surveiller les modifications de fichiers et utilisez sftp pour les télécharger sur le serveur

高洛峰
高洛峰original
2017-02-20 16:52:461973parcourir

Cet article présente principalement la méthode d'utilisation de nodejs pour surveiller les modifications de fichiers et d'utilisation de sftp pour les télécharger sur le serveur. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer

Récemment. J'utilise React Express pour créer un site Web Mon propre outil (en fait un vivaneau d'île de chasse au trésor)

Ensuite, comme il doit être modifié fréquemment, il doit également être mis sur le serveur pour être testé. Je dois toujours utiliser Webpack et télécharger les fichiers manuellement, ce qui est très ennuyeux. J'ai donc simplement recherché et écrit un script capable de détecter les modifications de fichiers et de les télécharger automatiquement.

Tout d'abord, nous utilisons npm pour installer deux modules packagés par d'autres.


npm install ssh2-sftp-client
npm install gaze


La fonction du premier module est de télécharger des fichiers via sftp,

La fonction du deuxième module Surveillez simplement les modifications des fichiers. Bien entendu, vous pouvez également utiliser le module fs fourni avec node.

L'utilisation de ces deux modules est ici : ssh2-sftp-client gaze

Après l'installation, la première étape consiste à surveiller les modifications du fichier, puisque mon fichier a été construit à l'aide de webpack. D'accord, donc il n'y aura que des modifications de fichiers, aucun fichier ne sera ajouté, vous n'avez donc besoin que d'utiliser modifié ici. Pour d'autres utilisations, veuillez vous référer au lien ci-dessus, ils sont tous similaires


<.>
gaze([&#39;你的文件路径/*.*&#39;,&#39;还可以使用数组的方式监听多个文件夹/app.js&#39;], function(err, watcher) {
 let watched = this.watched();
 //监听文件的变化
 this.on(&#39;changed&#39;, (filepath) => {
 //romotePath是我文件的远程位置
 let romotePath = &#39;/root&#39; + filepath.substr(15);
 //put为上传文件的函数,下面会讲 
 put(filepath,romotePath);
 console.log(filepath + &#39; was changed&#39;);
 });
});


Ensuite, nous commençons à écrire notre fonction pour télécharger des fichiers


function put(localPath,romotePath){
 let sftp = new Client();
 sftp.connect({
 host: &#39;你的服务器地址&#39;,
 port: &#39;端口,没改过的话是22&#39;,
 username: &#39;连接的用户名&#39;,
 password: &#39;密码&#39;
 }).then(() => {
 return sftp.put(localPath,romotePath);
 }).then(() =>{
 console.log("上传完成");
 }).catch((err) => {
 console.log(err, &#39;catch error&#39;);
 });
}


Bon, n'oubliez pas d'introduire le module au début de notre dossier.


let Client = require(&#39;ssh2-sftp-client&#39;);
let gaze = require(&#39;gaze&#39;);


Ensuite, expérimentons. Accédez à notre dossier webpack

Utilisez nodejs pour surveiller les modifications de fichiers et utilisez sftp pour les télécharger sur le serveur

et bien sûr, vous pouvez voir qu'il a été modifié et téléchargé. Le téléchargement prend du temps, soyez patient.

Utilisez nodejs pour surveiller les modifications de fichiers et utilisez sftp pour les télécharger sur le serveur

Je suis venu sur notre serveur, et bien sûr, la dernière heure de modification est devenue maintenant.

À partir de maintenant, je n’ai enfin plus besoin de télécharger un par un. A chaque fois que vous souhaitez le modifier directement. Ouvrez une fenêtre pour démarrer ce script et vous pourrez coder avec plaisir.

Ce qui précède est ce que l'éditeur vous présente, en utilisant nodejs pour surveiller les modifications de fichiers et en utilisant sftp pour télécharger sur le serveur. J'espère que cela vous sera utile. Si vous avez des questions, laissez-moi un message. message et l'éditeur répondra à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus d'articles sur l'utilisation de nodejs pour surveiller les modifications de fichiers et le téléchargement sur le serveur à l'aide de sftp, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn