Vue--vue项目部署--3.服务器一键更新部署,超超超简单版本

6 篇文章 0 订阅
4 篇文章 0 订阅

Vue–vue项目部署–3.服务器一键更新部署

  1. 本地Windows10运行
  2. 服务器Linux运行
  3. 设置自动部署(本篇)

注:
1.本篇服务器项目部署相关,在博客 2.服务器Linux运行
2.本文使用密钥连接服务器

1.环境、工具

工具/环境版本
服务器const OS 7.5
代码工具VScode 1.42
cnpm在这里插入图片描述
nginx(项目运行工具)nginx 1.16

2.修改文件目录

在这里插入图片描述

  1. 新建deploy文件夹,在根目录下
  2. 新建products.js文件
  3. 新建index.js文件
  4. MyServer是我的服务器连接密钥

3.引入scp2库

注:我一直使用的是cnpm因为比较快

cnpm i -D cross-env scp2 ora 

4.文件修改详细

1.products.js文件:数据库连接信息

截图
在这里插入图片描述
代码

/**
 1. 服务器信息
 */
const fs = require('fs');
const envfile = process.env.NODE_ENV === 'prod' ? 0 : 1;
const SERVER_LIST = [
    {
        name: '生产环境',
        domain: 'www.xxxxx.xyz',// 域名
        host: '49.xxxxx.123',// ip
        port: 22,// 端口
        username: 'root', // 登录服务器的账号
        // password: 'Gyxxxxxxxx6',// 登录服务器的账号
        privateKey: fs.readFileSync('E:/xxxxx/deploy/MyServer'),  // 密钥文件
        path: '/opt/xxxxx'// 发布至静态服务器的项目路径
    },{
        name: '测试环境',
        domain: 'www.xxxxx.xyz',// 域名
        host: '49.xxxxx.123',// ip
        port: 22,// 端口
        username: 'root', // 登录服务器的账号
        // password: 'Gyxxxxxxxx6',// 登录服务器的账号 
        privateKey: fs.readFileSync('E:/xxxxx/deploy/MyServer'),  // 密钥文件
        path: '/opt/xxxxx'// 发布至静态服务器的项目路径
    }
];
module.exports = SERVER_LIST[envfile];

解析

  1. 本文件配置服务器相关信息,
  2. password是服务器连接密码,本人使用的是密钥连接,所以password未使用
  3. NODE_ENV为接受环境参数,启动时传参,本文在传参时说明
2.index.js文件:上传服务器运行js

截图
在这里插入图片描述
代码

const scpClient = require('scp2');
const ora = require('ora');
const chalk = require('chalk');
const server = require('./products');
const spinner = ora('正在发布到' + (process.env.NODE_ENV === 'prod' ? '生产' : '测试') + '服务器...');
spinner.start();
scpClient.scp(
  './dist', // 这个路径是你需要上传到服务器的文件夹路径
  {
    host: server.host,
    port: server.port,
    username: server.username,
    // password: server.password,
    privateKey: server.privateKey,
    path: server.path
  },
  function (err) {
    spinner.stop();
    if (err) {
      console.log(chalk.red('发布失败.\n'));
      throw err;
    } else {
      console.log(chalk.green('Success! 成功发布到' + (process.env.NODE_ENV === 'prod' ? '生产' : '测试') + '服务器! \n'));
    }
  }
);

解析

  1. ./dist为项目打包默认目录,根据个人修改
  2. NODE_ENV为接受环境参数,启动时传参,本文在传参时说明
3.package.json修改:新增指令

截图
在这里插入图片描述
代码
新增指令

"deploy:dev": " npm run build && cross-env NODE_ENV=dev node ./deploy",
"deploy:prod": "npm run build && cross-env NODE_ENV=prod node ./deploy"

解析

  1. npm run build为打包指令
  2. cross-env NODE_ENV=prod为传递环境参数NODE_ENVprod

5.学习博客

文档:Vue–打包部署借鉴博客3.note
链接:http://note.youdao.com/noteshare?id=c5b63f8523b72edd77cdd6e2341ef726&sub=606A5DD0160A468D808BB30E92ED889F

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值