//安装两个包就可以了
// npm i -D ssh2-sftp-client dotenv
‘use strict’
const path = require(‘path’)
const SftpClient = require(‘ssh2-sftp-client’)
const dotenvPath = path.join(__dirname, ‘…’, ‘.env’)
require(‘dotenv’).config({path: dotenvPath})
const config = {
host: ‘192.168.2.20’,
username: ‘root’,
password: ‘123456’,
port: 22
}
async function main() {
const client = new SftpClient(‘upload-test’)
const src = path.join(__dirname, ‘dist’) //需要上传的目录
const dst = ‘/home/app/web/xt-app-h5’ //远程目录
try {
await client.connect(config)
client.on(‘upload’, info => {
console.log(Listener: Uploaded ${info.source}
)
})
let rslt = await client.uploadDir(src, dst)
return rslt
} finally {
client.end()
}
}
main()
.then(msg => {
console.log(msg)
})
.catch(err => {
console.log(main error: ${err.message}
)
})
执行
此js放在根目录与src同级,用node执行, 控制台输入: node upload.js即可。