开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

利用nodejs监控文件变化并使用sftp上传到服务器

简介:
+关注继续查看

首先,我们使用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) => {        //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');
    });
}

复制代码

好了,别忘了在我们的文件开始的地方可是要引入模块的。

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

接下来我们来实验一下。来到我们的文件夹webpack一下

果然可以看到已经修改并且上传完成了。上传需要时间,请耐心等待。

来到我们的服务器,果然最近的修改时间已经变成现在了。

从此以后我终于不用一个个上传了。每次要修改直接。打开一个窗口开启这个脚本,就可以愉快的编码了。


      本文转自zsdnr  51CTO博客,原文链接:http://blog.51cto.com/12942149/1929369,如需转载请自行联系原作者








版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
netty系列之:从零到壹,搭建一个SOCKS代理服务器
netty系列之:从零到壹,搭建一个SOCKS代理服务器
176 0
nodejs TCP服务器和客户端通信的socket结构
这个结构我们大学时上Unix网络编程的专业课就学过了:
41 0
nodejs TCP服务器和客户端通信的socket结构
nodejs TCP服务器和客户端通信的socket结构
52 0
推荐一个一分钟就可以搭建好的静态文件服务器,基于nodejs
推荐一个一分钟就可以搭建好的静态文件服务器,基于nodejs
184 0
在nodejs服务器和ABAP服务器上使用jsonp
在nodejs服务器和ABAP服务器上使用jsonp
34 0
在nodejs服务器和ABAP服务器上使用jsonp
在nodejs服务器和ABAP服务器上使用jsonp
56 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载