十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
起因
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于做网站、成都网站建设、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!刚加入一个小组的项目开发,开发环境是基于node环境,通过webpack打包构建代码,然后上传sftp,在浏览器测试。这种开发模式无可厚非,但是每次修改源代码,然后build,然后upload,不胜其烦。之前项目中有过 gulp-sftp任务脚本,然而并不是生效。于是自力更生,另谋他法,搞一个自动上传sftp的服务脚本。
设想
因为基于webpack,所以直接启动webpack编译的watch监听即可,在watch回调里执行stfp的上传,上传去npm社区找一个sftp的客户端插件
实现
使用了插件ssh3-sftp-client,文档有使用说明和api
写书写了一个 sftp 模块,连接完,直接导出
const Client = require('ssh3-sftp-client'); const fs = require('fs'); const sftp = new Client(); sftp .connect({ host: '0.0.0.0', // ftp服务器ip地址 port: '22', // ftp服务器port username: 'yourname', // 你的登录用户名 password: 'yourpass', // 你的密码 privateKey: fs.readFileSync('/Users/yourname/.ssh/id_rsa'), // 私钥 passphrase: 'yourpass', // 私钥密码 }) .then(() => { console.log('ftp文件服务器连接成功'); }) .catch(err => { console.log(err, 'catch error'); }); module.exports = sftp;