Fork me on GitHub

VScode中用sftp自动上传 | 服务端用pm2自动重启

sftp

sftp 的安装和配置
  • 在Visual Studio Code 中安装 sftp 扩展,安装完成后在工作空间中,按Ctrl + Shift + P并输入:

    1
    sftp config
  • 这个指令会在.vscode中添加sftp.json文件,按需求修改其中的项目,示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    {
    "host": "", // 服务器ip
    "port": 22, // 端口,sftp模式是22
    "username": "", // 用户名
    "password": "", // 密码
    "protocol": "sftp", // 模式
    "agent": null,
    "privateKeyPath": null,
    "passphrase": null,
    "passive": false,
    "interactiveAuth": false,
    "remotePath": "/root/node/build/", // 服务器上的文件地址
    "context": "./server/build", // 本地的文件地址

    "uploadOnSave": true, // 监听保存并上传
    "syncMode": "update",
    "watcher": { // 监听外部文件
    "files": false, // 外部文件的绝对路径
    "autoUpload": false,
    "autoDelete": false
    },
    "ignore": [ // 忽略项
    "**/.vscode/**",
    "**/.git/**",
    "**/.DS_Store"
    ]
    }
  • 注意:其中的注释不能保留。

sftp 的使用
  • Ctrl + Shift + P并输入:

    1
    sftp Upload
  • 即可将项目上传到服务器中。类似的指令还有:

指令 功能
SFTP Upload 上传到服务器,没有则创建,有则覆盖,多则忽略
SFTP Download 下载到本地,规则同上
SFTP Sync To Remote 同步到服务器,多则删除
SFTP Sync To Local 同步到本地,多则删除
  • 若想单独操作项目中的某个文件,则右键,选择以上指令即可。

pm2 自动重载

安装 pm2
  • 登录服务器,输入以下指令安装pm2:

    1
    npm i -g pm2
  • 检查是否安装成功,输入:

    1
    pm2 -v
  • 如果和下面一样出现版本信息,则安装成功:

    1
    2
    [root@VM_0_16_centos ~]# pm2 -v
    2.9.1
  • 如果没有出现版本信息,而是:

    1
    2
    [root@VM_0_16_centos ~]# pm2 -v
    -bash: pm2: command not found
  • 则可能是npm的环境变量没有配置好,参考CentOS 中永久修改环境变量

通过pm2启动node.js服务并监听文件变化时自动重启
  • 使用指令:

    1
    pm2 start server.js --watch
  • 成功则显示如下:
    进程成功开启

  • 补充:执行pm2 list,可以看到node进程列表。如果要开启,执行pm2 start + 对应id,关闭则使用:pm2 stop + 对应id

总结

  • 如果我们希望编写的代码保存后,自动上传、并且不用再切换到xshell中去操作远程端(使用rz -bey从本地win上传文件到远端linux、使用sz –bey 从远端linux传输文件到本地win)。那么上面的方法已经实现了。
  • 但是事情往往没有那么简单,sftp的保存并上传功能只能监听到保存这一动作,而无法监听到构建工具构建出来的文件
------ 本文结束 ------