2024-10-30
前端
00

目录

1、npm安装
2、在项目根路径下创建文件deploy.config.js
3、配合打包上传命令
4、验证

正常流程代码开发,编译打包,手动上传到linux文件夹下。 在掘金网站中发现scp2,打包完成后自动上传到服务器。 官网spmjs/node-scp2

1、npm安装

bash
npm i scp2 --save

2、在项目根路径下创建文件deploy.config.js

密码使用 readline 模块来动态输入密码,而不是将密码存储在配置文件中

js
// 引入模块 const readline = require('readline'); const scpClient = require('scp2'); // 定义多个服务器信息(不包含密码) const servers = [ { host: '192.168.1.1', // 服务器 IP username: 'root', // 服务器账号 path: '/mydata/data' // 部署的目标路径 } ]; // 使用 readline 接口获取用户输入 const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); // 封装一个函数用于获取密码 function askPassword(query) { return new Promise(resolve => { rl.question(query, answer => { resolve(answer); rl.close(); }); }); } // 部署函数 async function deploy(server) { try { const password = await askPassword(`请输入 ${server.host} 的密码: `); server.password = password; console.log(`正在部署到 ${server.host}...`); scpClient.scp('./dist', server, function (err) { if (err) { console.log(`部署到 ${server.host} 失败: ${err}`); } else { console.log(`部署到 ${server.host} 成功!`); } }); } catch (error) { console.log(`部署到 ${server.host} 出错: ${error}`); } } // 对每个服务器进行部署 servers.forEach(server => { deploy(server); });

3、配合打包上传命令

package.json增加命令

bas
"scripts": { 。。。 "deploy": "npm run build && node ./deploy.config.js" },

4、验证

image.png

本文作者:酷少少

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!