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

nodejsを使用してファイルの変更を監視し、SFTPでサーバーにアップロードする方法

最近はreactを使用しています+expressで独自のツール型ウェブサイトを作成します(実は夺宝島の競り上げツールです)

そして、頻繁に変更があり、サーバー上でテストする必要があるため、webpackを使用してファイルをアップロードする手間がかかります。そのため、ファイルの変更を検出し、自動的にアップロードするスクリプトを書くことにしました。

まず、他の人が包装した2つのモジュールをnpmでインストールします。

npm install ssh2-sftp-client
npm install gaze

第1つのモジュールの役割はSFTPでファイルをアップロードすることです

第2つのモジュールの役割はファイルの変更を監視することです。もちろん、nodeのfsモジュールを使用することもできます。

これらのモジュールの使い方はここに記載されています:ssh2-sftp-client gaze

インストールが完了したら、まずファイルの変更を監視するのが最初のステップです。私のファイルは既にwebpackでビルドされているので、以降はファイルの変更のみでファイルの追加はありません。したがって、ここでは'changed'を使用するだけで十分です。他の使い方は上記のリンクを参照してください。すべて同じで、少し異なります

gaze(['あなたのファイルパス/*.*','を使用して複数のフォルダーを監視することができます/app.js], function(err, watcher) {
 let watched = this.watched();
 //ファイルの変更を監視します
 this.on('changed', (filepath) => {
 //remotePathはファイルのリモート位置です
 let remotePath = '';/root + filepath.substr(15;
 //putはアップロードするファイルの関数で、後で説明します 
 put(filepath, remotePath);
 console.log(filepath + ';' was changed');
 });
}); 

それでは、アップロードするファイルの関数を書き始めましょう

function put(localPath, remotePath){
 let sftp = new Client();
 sftp.connect({
 ホスト: 'あなたのサーバー住所'
 port: 'ポート(変更されていない場合は)'22',
 username: '接続するユーザー名',
 password: 'パスワード'
 }).then(() => {
 return sftp.put(localPath, romotePath);
 }).then(() =>{
 console.log("アップロード完了");
 }).catch((err) => {
 console.log(err, 'catch error');
 });
}

さて、ファイルの先頭にはモジュールをインポートする必要がありますので、忘れずに。

let Client = require('ssh2-sftp-client');
let gaze = require('gaze');

次に、私たちのフォルダー webpack で実験してみましょう。

変更が完了し、アップロードが完了したことが確認できます。アップロードには時間がかかるため、ご耐心をお願いします。

私たちのサーバーに移動すると、最近の変更時刻が現在に更新されていることが分かります。

それでは、これから各々のアップロードを個別に行う必要はなくなりました。変更が必要な場合は、直接。このスクリプトを開くウィンドウを開き、快適にコーディングを始めましょう。

以上は、編集者が皆さんに紹介した nodejs を使用してファイルの変更を監視し、SFTP でサーバーにアップロードする方法です。皆さんに役立つことを願っています。何かご不明な点がございましたら、コメントを残してください。編集者は迅速に回答いたします。また、呐喊教程サイトのサポートに感謝しています。

声明:本稿の内容はインターネットから収集され、著作権者に帰属します。インターネットユーザーが自発的に貢献し、アップロードしたものであり、本サイトは所有権を有しておらず、人工的な編集は行われていません。著作権侵害の疑いがある場合は、メールを送信してください:notice#oldtoolbag.com(メールを送信する際には、#を@に変更してください。報告を行い、関連する証拠を提供してください。一旦確認が取れましたら、本サイトは即座に侵害疑いのコンテンツを削除します。)

おすすめ