返回

如何使用 JavaScript 编写 Shell 脚本(四):打包部署脚本

前端

JavaScript 编写 Shell 脚本介绍

在上一篇文章中,我们介绍了如何使用 JavaScript 编写 Shell 脚本的基本知识。在本篇文章中,我们将重点介绍如何使用 JavaScript 编写 Shell 脚本来实现本地项目到服务器的打包和部署。

脚本编写

首先,我们需要创建一个新的 JavaScript 文件。您可以使用任何文本编辑器来创建这个文件,比如记事本、Sublime Text 或 Visual Studio Code。

// 导入必要的模块
const fs = require('fs');
const path = require('path');
const child_process = require('child_process');

// 定义打包函数
const pack = () => {
  // 获取当前目录
  const cwd = process.cwd();

  // 打包项目
  child_process.execSync('npm run build', { cwd });

  // 获取打包后的文件路径
  const buildPath = path.join(cwd, 'build');

  // 返回打包后的文件路径
  return buildPath;
};

// 定义部署函数
const deploy = (buildPath, server) => {
  // 连接服务器
  const ssh = child_process.spawn('ssh', [server]);

  // 将打包后的文件复制到服务器
  child_process.execSync(`scp -r ${buildPath}/* ${server}:/var/www/html`, { cwd });

  // 关闭连接
  ssh.kill();
};

// 获取命令行参数
const args = process.argv.slice(2);

// 判断命令
if (args[0] === 'pack') {
  // 执行打包操作
  const buildPath = pack();

  // 输出打包后的文件路径
  console.log(`打包成功,打包后的文件路径为:${buildPath}`);
} else if (args[0] === 'deploy') {
  // 执行部署操作
  const buildPath = pack();
  const server = args[1];

  deploy(buildPath, server);

  // 输出部署成功信息
  console.log(`部署成功,已将项目部署到服务器 ${server}。`);
} else {
  // 输出帮助信息
  console.log('用法:');
  console.log('  pack:打包项目');
  console.log('  deploy <server>:部署项目到服务器');
}

脚本运行

将上述脚本保存在一个文件中,例如 deploy.js。然后,您可以使用以下命令来运行脚本:

node deploy.js pack

这将执行打包操作,并将打包后的文件路径输出到控制台。

node deploy.js deploy username@example.com

这将执行部署操作,并将项目部署到服务器 username@example.com

总结

在本篇文章中,我们介绍了如何使用 JavaScript 编写 Shell 脚本来实现本地项目到服务器的打包和部署。这种方法可以帮助您自动化部署过程,并提高开发效率。