自动打包发布前端项目

发布时间 2023-09-04 09:50:32作者: (⊙o⊙)买噶

1、deploy.config.js

module.exports = {
    packedFile:'dist', //打包文件
    project: 'testProject', //本地打包后的文件
    port:'8091', // 端口号
    place: 'root@123.11.11.111', // 服务器
    fpath: '/usr/local/nginx/project', // 服务器上传地址
    targetUrl: 'http://123.11.11.111',  // 地址链接
}

2、inset-deploy.js

const os = require(`child_process`).execSync
const fs = require('fs')
//const project = require('../vue.config.js').outputDir
const config =require('./deploy.config')
const packedFile=config.packedFile
const project=config.project
const port=config.port
const platform = process.platform  //mac系统:darwin   window系统:win32


/**
 * 部署
 */

// const did = `SmartPark-big-screen`
/** 项目名 */
/** 服务用户名和host */
const place = config.place
/** 文件放置路径 */
const fpath = config.fpath

os(`npm run build`)

os(`ssh ${place} "cd ${fpath} && rm -rf ${packedFile}"`)

os(`scp -r ${packedFile} ${place}:${fpath}`)

os(`${platform=='darwin'?'rm -rf':'rmdir /s/q'} ${packedFile}`)

try {
    os(` ${platform=='darwin'?'open':'explorer'} ${config.targetUrl+':'+port+'/'+project}`)
} catch (error) {}

3、打包并发布项目  npm run deploy

 "deploy": "node .\\hand\\inset-deploy.js"