1.0.3 • Published 3 years ago

ssh-upload-amo v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

使用示例

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(); // 断开连接
1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago