IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 使用coding自动化集成部署vue/react -> 正文阅读

[JavaScript知识库]使用coding自动化集成部署vue/react

上一篇有记录到使用jenkins实现自动化部署web项目,这篇讲一下如何使用codin部署

1.创建项目

首先注册一个coding账号并创建一个项目
在这里插入图片描述

2.录入凭证

通过上图点击左下角的项目设置进入页面,点击左下角开发者选择》凭证管理》录入凭证
在这里插入图片描述
凭证名称:随便填个
root:填写服务器的root
密码:填写服务器的密码

3.制作仓库

这一步的目的是打包后的压缩包自动上传到该目录
在这里插入图片描述
地址:web 可以写别的,只是个名称,用来指定仓库

4.构建计划

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
点击确定后就可以进行相应配置了,也可以从外边进入设置,如题
在这里插入图片描述

5.构建配置(重点)

当前还是选择默认即可
在这里插入图片描述
接下来重点的地方来了
在这里插入图片描述

这里的配置参数可以实现打包动态化,也就是说传入什么参数,比如ip、端口、分支等,就会实现动态打包,而不是局限于某个ip或者分支,这里设置的变量会在文本编辑器中使用

6.配置 Jenkinsfile

复制我这段即可,然后做一些修改即可

pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout([$class: 'GitSCM',
        branches: [[name: GIT_BUILD_REF]],
        userRemoteConfigs: [[
          url: GIT_REPO_URL,
          credentialsId: CREDENTIALS_ID
        ]]])
      }
    }
    stage('安装依赖') {
      steps {
        sh 'npm install -g cnpm --registry=https://registry.npm.taobao.org'
        sh 'cnpm install'
      }
    }
    stage('执行构建') {
      steps {
        echo '开始构建'
        sh 'npm run build'
        echo '构建完成'
      }
    }
    stage('压缩制品dist') {
      steps {
        echo '压缩中...'
        sh 'tar -zcf dist.tar.gz dist/'
        echo '压缩完成.'
         sh 'ls'
      }
    }
      stage('上传制品') {
        steps {
          echo '开始上传'
          codingArtifactsGeneric(files: 'dist.tar.gz', repoName: 'web', version: '${env.GIT_BUILD_REF}')
        }
      }
    stage('部署至服务器') {
      steps {
        script {
          def remote= [:]
          remote.name = "my-remote-server"
          remote.host = "${REMOTE_HOST}"
          remote.allowAnyHosts = true
          // 服务器远程地址
          def remotePath = "/www/wwwroot/coding.muge.chat"
            // 使用当前项目下的凭据管理中的 用户名 + 密码 凭据
            withCredentials([usernamePassword(
              credentialsId: "${REMOTE_CRED}",
              passwordVariable: 'password',
              usernameVariable: 'userName'
            )]) {

              // SSH 登陆用户名
              remote.user = userName
              // SSH 登陆密码
              remote.password = password
              stage("执行ssh脚本") {
                echo '开始执行脚本' 
                // SSH 上传文件到远端服务器
                sshPut remote: remote, from: './dist.tar.gz', into:remotePath
                // 解压缩
                sshCommand remote: remote, command: "tar -zxf ${remotePath}/dist.tar.gz -C ${remotePath}/"
                // 删除压缩文件
                sshCommand remote: remote, sudo: false, command: "rm -f ${remotePath}/*.tar.gz"
                // /将dist文件夹所有内容移动到上一级
                sshCommand remote: remote, sudo: false, command: "mv ${remotePath}/dist/* ${remotePath}/"
                // 删除dist文件夹
                sshCommand remote: remote, sudo: false, command: "rm -rf ${remotePath}/dist"
                echo '脚本执行结束' 
              }
            }
        }

      }
    }
  }
}

在这里插入图片描述

7.开始构建

以上配置完,构建即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.扩展

既然通过配置参数,可以实现动态打包。那,我的项目怎么用的到这些参数呢。
比如我要在coding上配置打包参数 ipportname
拿vue2举例,首先在项目根路径中创建 vue.config.js ,使用以下命令便可以获取传入参数

// npm需要这么拿
const {npm_config_ip:ip,npm_config_port:port,npm_config_name:name} = process.env
// 自定义参数ip port name
// 获取定义参数
console.log(ip,'ip');
console.log(port,'port');
console.log(name,'name');

在这里插入图片描述
通过这些参数就可以实现动态打包
参数形式一定要通过 **–**params ,一定要在前面加上 两杠
打包的时候把命令改为npm run build --ip=127.0.1
拿步骤6举例
首先配置了如下参数
在这里插入图片描述

原本代码

    stage('执行构建') {
      steps {
        echo '开始构建'
        sh 'npm run build'
        echo '构建完成'
      }
    }

更改后的代码

    stage('执行构建') {
      steps {
        echo '开始构建'
        sh 'npm run build --ip=npm run build --ip=${IP} --port=${PORT} --name=${NAME} '构建完成'
      }
    }

引号中变量需要 使用 "${你的变量}"表示

9.结束语

到此jenkins和coding之前端自动化部署项目已学习完成了,是不是觉得挺有意思的

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:09:15  更:2022-05-05 11:09:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:43:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码