生产管理系统前端 - 发布脚本统一用一个环境文件
This commit is contained in:
@@ -156,17 +156,68 @@ function generateApi(env) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取API基础URL
|
||||
* 从环境配置文件中读取配置
|
||||
*/
|
||||
function getEnvConfigFromFile(env) {
|
||||
try {
|
||||
// 读取对应环境配置文件
|
||||
const envFilePath = path.join(process.cwd(), 'env', `.env.${env}`);
|
||||
|
||||
if (!fs.existsSync(envFilePath)) {
|
||||
logWarning(`环境配置文件不存在: ${envFilePath}`);
|
||||
return {
|
||||
FRONTEND_BASE_URL: 'http://localhost:3000',
|
||||
BACKEND_BASE_URL: 'http://localhost:8080',
|
||||
ENV_DESCRIPTION: `${env}环境`
|
||||
};
|
||||
}
|
||||
|
||||
const envContent = fs.readFileSync(envFilePath, 'utf8');
|
||||
const lines = envContent.split('\n');
|
||||
|
||||
const config = {
|
||||
FRONTEND_BASE_URL: 'http://localhost:3000',
|
||||
BACKEND_BASE_URL: 'http://localhost:8080',
|
||||
ENV_DESCRIPTION: `${env}环境`
|
||||
};
|
||||
|
||||
// 解析配置文件
|
||||
for (const line of lines) {
|
||||
if (line.startsWith('FRONTEND_BASE_URL=')) {
|
||||
config.FRONTEND_BASE_URL = line.split('=')[1].trim();
|
||||
} else if (line.startsWith('BACKEND_BASE_URL=')) {
|
||||
config.BACKEND_BASE_URL = line.split('=')[1].trim();
|
||||
logInfo(`从 ${envFilePath} 读取到后端地址: ${config.BACKEND_BASE_URL}`);
|
||||
} else if (line.startsWith('ENV_DESCRIPTION=')) {
|
||||
config.ENV_DESCRIPTION = line.split('=')[1].trim();
|
||||
}
|
||||
}
|
||||
|
||||
return config;
|
||||
} catch (error) {
|
||||
logError(`读取环境配置失败: ${error.message}`);
|
||||
return {
|
||||
FRONTEND_BASE_URL: 'http://localhost:3000',
|
||||
BACKEND_BASE_URL: 'http://localhost:8080',
|
||||
ENV_DESCRIPTION: `${env}环境`
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取API基础URL - 从环境配置文件中读取
|
||||
*/
|
||||
function getApiBaseUrl(env) {
|
||||
const apiUrls = {
|
||||
dev: 'http://localhost:8080', // 开发环境使用本地后端
|
||||
test: 'http://pengcode.tech:8080', // 测试环境使用指定后端
|
||||
uat: 'https://cavin-smart-crop-backend-app.uat.maimaiag.com',
|
||||
prod: 'https://cavin-smart-crop-backend-app.prod.maimaiag.com'
|
||||
};
|
||||
const config = getEnvConfigFromFile(env);
|
||||
return config.BACKEND_BASE_URL;
|
||||
}
|
||||
|
||||
return apiUrls[env] || apiUrls.dev;
|
||||
/**
|
||||
* 获取前端基础URL - 从环境配置文件中读取
|
||||
*/
|
||||
function getFrontendUrl(env) {
|
||||
const config = getEnvConfigFromFile(env);
|
||||
return config.FRONTEND_BASE_URL;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,25 +249,18 @@ function buildNext(env) {
|
||||
* 显示构建信息
|
||||
*/
|
||||
function showBuildInfo(env, totalTime) {
|
||||
const config = {
|
||||
dev: { name: '开发环境', url: 'https://cavin-smart-crop-ui-app.dev.maimaiag.com' },
|
||||
test: { name: '测试环境', url: 'https://cavin-smart-crop-ui-app.test.maimaiag.com' },
|
||||
uat: { name: 'UAT环境', url: 'https://cavin-smart-crop-ui-app.uat.maimaiag.com' },
|
||||
prod: { name: '生产环境', url: 'https://cavin-smart-crop-ui-app.prod.maimaiag.com' }
|
||||
};
|
||||
|
||||
const envConfig = config[env];
|
||||
const envConfig = getEnvConfigFromFile(env);
|
||||
|
||||
log('='.repeat(60), 'green');
|
||||
logSuccess(`构建完成!总耗时: ${totalTime}ms`);
|
||||
logSuccess(`环境: ${envConfig.name} (${env})`);
|
||||
logSuccess(`前端地址: ${envConfig.url}`);
|
||||
logSuccess(`后端地址: ${getApiBaseUrl(env)}`);
|
||||
logSuccess(`环境: ${envConfig.ENV_DESCRIPTION} (${env})`);
|
||||
logSuccess(`前端地址: ${envConfig.FRONTEND_BASE_URL}`);
|
||||
logSuccess(`后端地址: ${envConfig.BACKEND_BASE_URL}`);
|
||||
logSuccess('构建产物: .next 目录');
|
||||
log('='.repeat(60), 'green');
|
||||
|
||||
logInfo('部署建议:');
|
||||
logInfo(` 将 .next 目录和 package.json 部署到 ${envConfig.name}`);
|
||||
logInfo(` 将 .next 目录和 package.json 部署到 ${envConfig.ENV_DESCRIPTION}`);
|
||||
if (env !== 'dev') {
|
||||
logInfo(` 确保环境变量 NODE_ENV=production 和 NEXT_PUBLIC_ENV=${env}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user