美文网首页
springboot-vue后台管理项目快速打包

springboot-vue后台管理项目快速打包

作者: 丶君为红颜酔 | 来源:发表于2019-01-28 11:01 被阅读0次

首先前端配置环境变量(修改文件package.json)

  1. 根目录添加.env.${mode} 文件(结合启动脚本:vue-cli-service --mode test build 或者 vue-cli-service serve --mode development build)
  2. vue.config.js先修改baseUrl(静态资源地址)和outputDir(导出目录)

执行打包脚本 node package.js [prod|test|其他=test]

var exec = require('child_process').exec;
var fs = require('fs')
var path = require('path');
var dir = path.resolve(__dirname);
var yml = dir + '/src/main/resources/application.yml'
var pom = dir + '/pom.xml'

/**
 * 替换某个文件的内容
 * @param file
 * @param originPt
 * @param str
 */
function replaceText(file, originPt, str) {
    fs.readFile(file, 'utf8', function (err, files) {
        var result = files.replace(originPt, str);
        fs.writeFile(file, result, 'utf8', function (e) {
            console.log(`>>> 替换${originPt} ===> ${str}成功`)
        }, function (err) {
            if (err) return console.log(err);
        });
    })
}

/**
 * 打包后台
 * @param env
 */
function doPackage(env) {
    console.log(`>>> 【后台】打包${env}环境`)
    if (env === 'prod') {
        replaceText(pom, /<packaging>jar<\/packaging>/g, '<packaging>war</packaging>')
        replaceText(yml, /active: dev/g, 'active: prod')
    } else {
        replaceText(pom, /<packaging>war<\/packaging>/g, '<packaging>jar</packaging>')
        replaceText(yml, /active: prod/g, 'active: dev')
    }
    800
    exec('call mvn clean', function (err, stdout, stderr) {
        console.log('>>> call mvn clean')
        exec('call mvn package -DskipTests', function (err, stdout, stderr) {
            console.log('>>> call mvn package -DskipTests')
            console.log('>>> 打包成功')
        })
    })
}

function doPackageWithFontEnd(env) {
    let buildEnv = 'test'
    if (env === 'prod') {
        buildEnv = 'prod'
    }
    exec(`cd ./admin&&call npm run build:${buildEnv}`, function (err, stdout, stderr) {
        console.log(`>>> cd ./admin&&call npm run build:${buildEnv}`)
        exec('call cd ../', function (err, stdout, stderr) {
            console.log(`>>> cd ..`)
            doPackage(env)
        })
    })
}


/**
 *
 * @param arg \
 * 不存在时:只打包后台jar模式
 * arg==='prod'时:生产模式
 * arg==='其他'时:打包前端页面,默认为test
 */
function package(arg) {
    if (arg) {
        doPackageWithFontEnd(arg)
    } else {
        doPackage(arg)
    }
}

/**
 * 
 * @type {*[]}
 */
var arguments = process.argv.splice(2);
var arg;
if (arguments && arguments[0]) {
    arg = arguments[0]
}
package(arg)

相关文章

  • springboot-vue后台管理项目快速打包

    首先前端配置环境变量(修改文件package.json) 根目录添加.env.${mode} 文件(结合启动脚本:...

  • VUE Webpack 项目优化

    最近换了一个公司,一直在用vue做后台管理系统,大集团得后台管理系统页面多的难以想象,很自然项目越做越大,打包编译...

  • Vue+springboot管理系统

    About 此项目是vue+element-ui 快速开发的物资管理系统,后台用的java springBoot ...

  • Nginx部署Vue项目

    本文通过部署vue-element-admin后台管理项目来通俗易懂的教大家如何使用Nginx快速部署Vue项目 ...

  • 前言

    在这里主要摘写一写简单零碎的东西 1、项目①项目地址、②接口文档、③管理后台地址、测试账号 2、项目打包发布①开发...

  • 第三章 在线教育平台(快速搭建后台管理系统)

    快速搭建后台管理系统 标签: admin python ajango xadmin 后台管理系统 xadmin 两...

  • vue项目打包抽离项目配置文件

    vue项目打包抽离项目配置文件 每次项目打包生成静态文件后,若后台服务ip发生改动,则需要前端调整重新编译打包,特...

  • Fun-Boot权限系统脚手架

    FunBoot是一款带有管理后台和App端让您快速开发的脚手架项目 ?文档 ⬇️项目地址 FunBoot采用全新的...

  • 后台管理 --- vue

    1.iview后台管理项目(基于iview ui)文档2.element后台管理项目(基于element ui)文...

  • JSPatch自定义后台

    项目背景 JSPatch官网提供了打包好的SDK和功能非常丰富后台管理,可以使热修复功能实现起来So Easy。如...

网友评论

      本文标题:springboot-vue后台管理项目快速打包

      本文链接:https://www.haomeiwen.com/subject/litajqtx.html