首先前端配置环境变量(修改文件package.json)
- 根目录添加.env.${mode} 文件(结合启动脚本:vue-cli-service --mode test build 或者 vue-cli-service serve --mode development build)
- 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)