nodejs を使用してファイルの変更を監視し、sftp を使用してサーバーにアップロードします

高洛峰
リリース: 2017-02-20 16:52:46
オリジナル
1991 人が閲覧しました

この記事では、nodejsを使用してファイルの変更を監視し、sftpを使用してサーバーにアップロードする方法を主に紹介します。非常に優れており、必要な友人は参考にしてください。

最近、私はreact+expressを使用してビルドしています。私自身のツール Web サイト (実際には、宝探しの島のスナッパーです)

それから、頻繁に変更する必要があり、テストのためにサーバーに置く必要があるためです。私は常に webpack を使用してファイルを手動でアップロードする必要がありますが、これは非常に面倒なので、ファイルの変更を検出して自動的にアップロードできるスクリプトを検索して作成しました。

まず、npm を使用して、他の人がパッケージ化した 2 つのモジュールをインストールします。


npm install ssh2-sftp-client
npm install gaze
ログイン後にコピー


最初のモジュールは sftp 経由でファイルをアップロードするために使用され、

2 番目のモジュールはファイルの変更を監視するために使用されます。もちろん、node に付属の fs モジュールを使用することもできます。

これら 2 つのモジュールの使用法は次のとおりです: ssh2-sftp-client gaze

インストール後の最初のステップは、ファイルの変更を監視することです。私のファイルは webpack を使用して構築されているため、以下はファイルの変更のみです。他の使用方法については、上のリンクを参照してください。どれも似ています


それから、ファイルをアップロードする関数を書き始めます


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


それでは、ファイルの先頭にモジュールを導入することを忘れないでください。


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


次は実験してみましょう。 webpack フォルダーに移動します


案の定、変更され、アップロードされていることがわかります。アップロードには時間がかかります。しばらくお待ちください。

nodejs を使用してファイルの変更を監視し、sftp を使用してサーバーにアップロードします

サーバーに来てみると、案の定、最新の変更時刻は今になりました。

nodejs を使用してファイルの変更を監視し、sftp を使用してサーバーにアップロードしますこれからは、ついに一つずつアップロードする必要がなくなりました。直接変更したいときは毎回。ウィンドウを開いてこのスクリプトを開始すると、楽しくコーディングできるようになります。

上記は、nodejs を使用してファイルの変更を監視する方法と、sftp を使用してサーバーにアップロードする方法についての編集者による紹介です。ご質問がある場合は、メッセージを残してください。編集者が返信します。間に合ったあなた。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

nodejs を使用してファイル変更を監視する方法と、sftp を使用してサーバーにアップロードする方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート