Vue-CLI 3 scp2自动部署项目至服务器的方法

下面是“Vue-CLI 3 scp2自动部署项目至服务器的方法”的完整攻略。

1. 安装scp2与ssh2

首先需要安装scp2ssh2,可以通过npm安装。

npm install scp2 ssh2 --save-dev

2. 准备打包脚本

在package.json中新增打包脚本命令:

"build:prod": "vue-cli-service build --mode production"

在项目根目录下新建deploy.js文件,编辑代码如下:

const SCP2 = require('scp2');
const SSH2 = require('ssh2');
const ora = require('ora');
const chalk = require('chalk');
const { name, version } = require('./package.json');

const SERVER = {
  host: 'your server ip',
  port: 22,
  username: 'your username',
  password: 'your password',
  path: '/usr/share/nginx/html' // 项目部署路径
};

const localPath = 'dist';
const remotePath = `${SERVER.path}/${name}/${version}`;

const spinner = ora(`正在部署项目:${chalk.cyan(name)}(${chalk.magenta(version)})`).start();

SCP2.scp(
  localPath,
  {
    ...SERVER,
    path: remotePath
  },
  function(err) {
    if (err) {
      spinner.fail(`部署项目 ${chalk.cyan(name)} 失败`);
      throw err;
    }
    spinner.succeed(`部署项目 ${chalk.cyan(name)} 成功!`);
    SSH2.connect(SERVER);
    SSH2.on('ready', function() {
      SSH2.exec(`cd ${SERVER.path} && rm -rf current && ln -sf ${remotePath} current`, function(
        err,
        stream
      ) {
        if (err) {
          spinner.fail(`创建current链接失败`);
          throw err;
        }
        stream
          .on('close', function() {
            spinner.succeed(`创建current链接成功`);
            SSH2.end();
          })
          .on('data', function(data) {
            console.log('STDOUT: ' + data);
          })
          .stderr.on('data', function(data) {
            console.log('STDERR: ' + data);
          });
      });
    });
  }
);

3. 部署命令

在package.json中新增部署命令:

"deploy": "npm run build:prod && node deploy.js"

4. 执行部署

执行以下命令即可将项目部署至服务器:

npm run deploy

示例说明

示例一

deploy.js文件中,代码const SERVER = { ... }定义了服务器信息。需要修改为自己的服务器信息。例如,如果服务器是通过密钥认证登录,则需要将username改为服务器登录用户名,将password改为服务器密钥路径。

示例二

在执行部署命令npm run deploy时,会先执行npm run build:prod,打包出dist目录,然后将dist目录通过scp命令部署到服务器上。最后执行ssh命令,将current指向最新的部署版本。

以上两个示例是其中的一部分内容,更详细的内容请参考完整的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue-CLI 3 scp2自动部署项目至服务器的方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue结合后台导入导出Excel问题详解

    以下是“Vue结合后台导入导出Excel问题详解”的完整攻略,分为以下几个部分: 理解前端导入导出Excel的实现原理 理解后台导入导出Excel的实现原理 实现前端导入导出Excel的示例 实现后台导入导出Excel的示例 1. 理解前端导入导出Excel的实现原理 前端导入导出Excel的实现原理是通过xlsx.js或者file-saver.js实现。x…

    Vue 2023年5月27日
    00
  • vue-cli项目中遇到的eslint的坑及解决

    在Vue项目中使用ESLint可以规范代码风格,提高代码质量,但有时会遇到一些ESLint的坑。在vue-cli项目中遇到的ESLint的坑及解决方法如下: 1. VS Code使用ESLint插件无法生效 在VS Code中安装并启用了ESLint插件(如ESLint、Vetur),但并不能如预期般发现编写的代码不符合ESLint规范时提示错误信息或警告信…

    Vue 2023年5月28日
    00
  • 简单理解Vue条件渲染

    简单理解Vue条件渲染 Vue条件渲染是指根据指令或者表达式的值,控制元素的显示或隐藏。常见的条件渲染指令包括 v-if、v-else、v-else-if和v-show。 v-if 指令 使用 v-if 指令可以根据表达式的值来决定元素是否显示。如果表达式的值为 true,则元素会显示;反之则不显示。例如: <template> <div&…

    Vue 2023年5月27日
    00
  • VSCode搭建vue项目的实现步骤

    下面我将详细讲解 “VSCode搭建vue项目的实现步骤”的完整攻略。整个过程包括: 安装Node.js 安装Vue CLI 创建Vue项目 配置VSCode开发环境 运行Vue项目 示例说明 1. 安装Node.js 首先,需要在电脑上安装Node.js,以便在命令行终端中使用npm安装Vue CLI和其他必要依赖项。Node.js的官方安装包可以在官网下…

    Vue 2023年5月28日
    00
  • Vue打包后访问静态资源路径问题

    Vue是一种流行的JavaScript框架,用于构建交互式的现代Web应用程序。Vue的打包可以将应用程序的所有资源(例如HTML,JavaScript,CSS和图像)打包成几个文件,使应用程序易于部署。但是,Vue打包后,用户在访问应用程序时可能会遇到静态资源路径问题。为解决这一问题,我们可以采用以下攻略: 问题描述 Vue打包后,由于路径设置不正确,可能…

    Vue 2023年5月28日
    00
  • Vue中localStorage的用法和监听localStorage值的变化

    关于Vue中localStorage的用法和监听localStorage值的变化,以下是完整内容: 1. Vue中localStorage的用法 LocalStorage是浏览器提供的一种本地存储方式,数据可以永久的保存在浏览器本地,下次访问此网页还能取回数据。使用localStorage需要使用到原生的JavaScript语法。在 Vue 中使用 loca…

    Vue 2023年5月28日
    00
  • vue 表单输入格式化中文输入法异常问题

    下面将详细讲解“vue 表单输入格式化中文输入法异常问题”的攻略: 什么是格式化表单输入? 格式化表单输入是指将用户输入的数据按照一定格式进行处理,以达到方便用户阅读和使用的目的。比如,将用户输入的手机号码在每四位数字之间加上一个空格或短横线,或者将用户输入的银行卡号在每四位数字之间添加空格。 vue 表单输入格式化中文输入法异常问题 在使用 vue 编写表…

    Vue 2023年5月28日
    00
  • element ui的el-input-number修改数值失效的问题及解决

    针对“element-ui的el-input-number修改数值失效的问题及解决”这个问题,我可以给出如下的完整攻略。攻略中包含了问题出现的原因、解决方法、示例说明等内容。 问题背景 在使用 element-ui 的 el-input-number 组件时,我们可能会遇到一个问题:在表单中使用该组件后,我们无法通过键盘输入数字来修改数值,只能通过上下箭头或…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部