123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- const shell = require('shelljs')
- const path = require('path');
- const config = {
- ip: "118.190.89.49", // ssh地址
- username: "root", // ssh 用户名
- port: 22, //端口
- password: "dstech@123", // ssh 密码
- path: '/home/itsm_v2_/web/pc', // 上传地址,删除地址
- buildPath: '../dist/spreadSheet' // 本地打包后文件地址
- }
- let Client = require('ssh2-sftp-client');
- function connectSSh() {
- let sftp = new Client();
- sftp.connect({
- host: config.ip,
- port: config.port,
- username: config.username,
- password: config.password
- }).then(() => {
- console.log("-----先执行删除服务器文件-----")
- return sftp.rmdir(config.path, true);
- }).then(() => {
- // 上传文件
- console.log("-----开始上传-----")
- return sftp.uploadDir(path.resolve(__dirname, config.buildPath), config.path);
- }).then((data) => {
- console.log("-----上传完成-----");
- sftp.end();
- }).catch((err) => {
- console.log(err, '-----失败-----');
- sftp.end();
- });
- }
- function runTask() {
- //打包完成
- console.log(`当前NodeJs版本是${process.version}`);
- const isNodeVersionLt17 = parseInt(process.version) < 17;
- const execStr = isNodeVersionLt17 ? 'npm run build' : 'npm run build:17';
- if (shell.exec(execStr).code == 0) {
- if (shell.exec(`find dist -name '*.js' -print0 | xargs -0 gzip -k`).code == 0) {
- if (shell.exec(`find dist -name '*.css' -print0 | xargs -0 gzip -k`).code == 0) {
- console.log("-----打包成功-----");
- //提交上传
- connectSSh();
- }
- }
- }
- }
- runTask()
|