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日

相关文章

  • 浅谈Web Storage API的使用

    浅谈Web Storage API的使用 什么是Web Storage API? Web Storage API是HTML5标准中的一个新的特性,用于在客户端存储数据,能够放置较为复杂的数据类型。它分为sessionStorage和localStorage两类,前者在用户关闭浏览器之后数据被清空,而后者则是永久性存储。 Web Storage API的用法 …

    Vue 2023年5月28日
    00
  • vue之使用vuex进行状态管理详解

    Vue之使用Vuex进行状态管理详解 前言 在Vue的开发中,随着应用规模的增大,状态管理变得越来越重要。在实现多个组件之间共享状态时,Vuex是一个非常好的选择。本文将详细讲解如何使用Vuex进行状态管理。 什么是Vuex Vuex是Vue.js应用程序开发的状态管理模式。它主要集中在管理应用中的所有组件的状态(比如,商店中的商品、购物车中的商品、登录用户…

    Vue 2023年5月28日
    00
  • 自定义vue组件发布到npm的方法

    首先,创建一个Vue组件库需要进行如下几个步骤: 步骤一:创建Vue组件项目 使用Vue CLI创建一个新的Vue项目: # 全局安装 Vue CLI npm install -g @vue/cli # 创建一个Vue项目 vue create my-vue-components 之后按照提示选择预设项目配置即可。 步骤二:编写Vue组件 在src/comp…

    Vue 2023年5月28日
    00
  • vue中的生命周期及钩子函数

    Vue 是一款流行的前端框架,它的设计理念是数据驱动视图。在 Vue 中,每个组件都有一组生命周期钩子函数。钩子函数是指在组件的某个时刻会被调用的函数。Vue 的生命周期分为四个阶段:创建、挂载、更新和销毁阶段。 创建阶段的生命周期钩子函数 在创建阶段,Vue 将会创建组件的实例,并先后调用以下生命周期钩子函数: beforeCreate 在实例被创建之前,…

    Vue 2023年5月27日
    00
  • vuex状态持久化在vue和nuxt.js中的区别说明

    接下来我会详细讲解有关“vuex状态持久化在vue和nuxt.js中的区别说明”的攻略。 1. 什么是vuex状态持久化 Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,例如用户信息、用户账户等。在Vuex中,状态state、mutation(操作状态的函数)和action(异步操作state的函数)被定义…

    Vue 2023年5月27日
    00
  • 详解vue-cli3多页应用改造

    针对”详解vue-cli3多页应用改造”,我们需要掌握以下几个方面: Vue-cli3多页应用的原理和基本配置 多页应用架构演变及其对应实现(如何从单页应用改造为多页应用) 懒加载和代码分割的原理和应用 多语言和国际化的实现方式 基于Vuex的SPA应用改造为多页应用的实践 下面我们来详细讲解一下这个完整攻略吧: 一、Vue-cli3多页应用的原理和基本配置…

    Vue 2023年5月28日
    00
  • 用v-html解决Vue.js渲染中html标签不被解析的问题

    使用Vue.js时,如果在模板中绑定含有HTML标签的数据时,Vue.js会默认将其转义为纯文本,防止XSS攻击。有时候,开发者想要渲染出真正的HTML标签,就需要使用v-html指令。 以下是使用v-html指令解决Vue.js渲染中HTML标签不被解析的问题的攻略: 步骤一:在模板中使用v-html指令 在Vue.js的模板中使用v-html指令来解决H…

    Vue 2023年5月27日
    00
  • Vue下的国际化处理方法

    下面我将为你详细讲解Vue下的国际化处理方法。 什么是Vue国际化 Vue国际化是指将应用程序的文本和其他可本地化内容(例如日期、时间、货币、图片、数字等)自动翻译成用户的首选语言或区域设置的过程。在Vue中,可以使用Vue-i18n插件轻松实现国际化。Vue-i18n是一种提供文本翻译和本地化方案的Vue插件。 安装Vue-i18n 在Vue项目中安装Vu…

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