ssh-upload-amo
v1.0.3
Published
vue-cli 打包后使用ssh2自动上传的插件
Downloads
1
Readme
使用示例
const { SSHUploadWebpackPlugin } = require("ssh-upload-amo");
module.exports = {
....
plugins: [
// ssh上传插件
new SSHUploadWebpackPlugin({
// ssh2配置
host: "localhost",
username: "root",
password: "password",
// 插件配置
arg: "--upload-ssh-amo",// 感知进行上传的命令行参数。如: vue-cli-service build --upload-ssh-amo
/**
文件上传完成后的回调。可用于后续的相关操作。如果有异步操作需要返回一个promise。
@param {SSHAmo} ssh - 封装过后的 NodeSSH 实例。实例介绍见后文
@return {promise}
*/
uploadAfter(ssh) {
// 例:复制后端配置文件
return ssh.copy("./dist-copy/config.txt","./dist/config.txt");
},
// 服务器相关配置
cwd: "/www", // 服务器工作目录
local: __dirname + "/dist",// 本地待上传的目录
remote: "webApp" // 上传后的服务器目录(相对cwd,即:/www/webApp。如果不填写默认为 path.dirname(local))
}),
]
}
}
SSHAmo实例
对
NodeSSH
的实例进行包裹后的简单二次封装。主要是对一些如复制、重命名、删除、命令行等常用的ssh操作进行了封装
const { SSHAmo } = require("ssh-upload-amo");
const sshAmo = new SSHAmo({
// 对应 NodeSSH.prototype.connect 方法的参数
host: "localhost",
username: "root",
password: "password",
// 新增参数
cwd: "/www" // 服务器端工作目录
});
// 属性
sshAmo.ssh; // 原生的 NodeSSH 实例
// 方法 (涉及到服务器端的文件或者目录的参数,其路径都是相对 cwd 的)
sshAmo.upload("./dist", "webApp"); // 上传文件或者目录。参数: 本地路径, 服务器路径
sshAmo.uploadAndBackups("./dist", "webApp"); // 上传文件或者目录,且会自动备份。参数: 本地路径, 服务器路径
sshAmo.execCommand("mkdir newDir"); // 执行命令行命令。工作目录为 cwd。 参数: 命令
sshAmo.changeName("dir", "newDir"); // 修改目录或文件名称。参数: 源文件或目录,目标文件或目录
sshAmo.del("test.txt"); // 删除文件或者目录
sshAmo.mkdir("newDir"); // 创建目录
sshAmo.copy("origin", "target"); // 复制目录或文件。如果目标目录不存在则会自动创建。参数: 源文件或目录,目标文件或目录
sshAmo.close(); // 断开连接