English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
最近在用react+express做一个自己的工具型网站(其实就是夺宝岛抢拍器)
然后因为经常要改动,而且又要放到服务器上进行测试。总是要webpack,然后手动把文件上传上去,非常麻烦,所以索性搜索了一下,写了一个能够检测文件变化并自动上传的脚本。
首先,我们使用npm安装两个别人封装好的模块。
npm install ssh2-sftp-client npm install gaze
第一个模块的作用是sftp上传文件,
第二个模块的作用是监听文件变化。当然,你也可以使用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 + '发生了变化'); }); });
然后就开始编写我们的上传文件的函数
function put(localPath, remotePath){ let sftp = new Client(); sftp.connect({ host: '你的服务器地址', port: '端口,如果没有更改,则是22', username: 'nome utente di connessione', password: 'password' }).then(() => { return sftp.put(localPath,romotePath); }).then(() =>{ console.log("Caricamento completato"); }).catch((err) => { console.log(err, 'catch error'); }); }
Bene, non dimenticare di introdurre i moduli all'inizio del nostro file.
let Client = require('ssh2-sftp-client'); let gaze = require('gaze');
Procediamo con l'esperimento. Siamo arrivati nella nostra cartella webpack
Sicuramente si può vedere che è stato modificato e caricato con successo. Il caricamento richiede del tempo, prego di avere pazienza.
Siamo arrivati sul nostro server, sicuramente l'ultima modifica è stata aggiornata ora.
Da ora in poi, non devo più caricare uno per uno. Ogni volta che devo modificare, apro direttamente una finestra e avvio questo script, posso codificare felicemente.
Come menzionato sopra, l'editor ha introdotto agli utenti come monitorare le modifiche dei file utilizzando nodejs e caricare su un server tramite sftp, sperando che sia utile agli utenti. Se avete domande, lasciate un messaggio, l'editor risponderà prontamente. In questo caso, ringraziamo anche il supporto del sito web Anayajiao tutorial!
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il diritto d'autore spetta ai rispettivi proprietari, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non possiede il diritto di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a notice#oldtoolbag.com (sostituisci # con @ quando invii l'e-mail) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente i contenuti sospetti di violazione del copyright.