Spaces:
Paused
Paused
Update src/utils/envChecker.js
Browse files- src/utils/envChecker.js +17 -33
src/utils/envChecker.js
CHANGED
|
@@ -1,37 +1,31 @@
|
|
| 1 |
-
const fs = require('fs');
|
| 2 |
const path = require('path');
|
| 3 |
|
| 4 |
-
/**
|
| 5 |
-
* 检查 .env 文件是否存在
|
| 6 |
-
* @returns {boolean} 文件是否存在
|
| 7 |
-
*/
|
| 8 |
-
function checkEnvFileExists() {
|
| 9 |
-
const envPath = path.resolve(process.cwd(), '.env');
|
| 10 |
-
return fs.existsSync(envPath);
|
| 11 |
-
}
|
| 12 |
-
|
| 13 |
/**
|
| 14 |
* 检查必要的环境变量是否已设置
|
| 15 |
* @returns {Object} 检查结果,包含是否通过和缺失的变量列表
|
| 16 |
*/
|
| 17 |
function checkRequiredEnvVars() {
|
| 18 |
-
//
|
| 19 |
const requiredVars = [
|
| 20 |
-
'API_KEYS'
|
|
|
|
| 21 |
];
|
| 22 |
|
| 23 |
-
//
|
|
|
|
| 24 |
if (process.env.ENABLE_AUTO_REFRESH === 'true') {
|
| 25 |
requiredVars.push(
|
| 26 |
'GITHUB_TOKEN',
|
| 27 |
'GITHUB_OWNER',
|
| 28 |
'GITHUB_REPO',
|
| 29 |
-
'GITHUB_WORKFLOW_ID'
|
| 30 |
-
'TRIGGER_WORKFLOW'
|
| 31 |
);
|
|
|
|
| 32 |
}
|
| 33 |
|
| 34 |
-
//
|
| 35 |
const missingVars = requiredVars.filter(varName => !process.env[varName]);
|
| 36 |
|
| 37 |
return {
|
|
@@ -45,32 +39,22 @@ function checkRequiredEnvVars() {
|
|
| 45 |
*/
|
| 46 |
function enforceEnvCheck() {
|
| 47 |
console.log('正在检查环境配置...');
|
| 48 |
-
|
| 49 |
-
//
|
| 50 |
-
const envFileExists = checkEnvFileExists();
|
| 51 |
-
if (!envFileExists) {
|
| 52 |
-
console.error('\n错误: 未找到 .env 文件!');
|
| 53 |
-
console.error('请根据 .env.example 创建 .env 文件并配置必要的环境变量。');
|
| 54 |
-
console.error('执行以下命令复制示例文件: cp .env.example .env,或执行npm run setup\n');
|
| 55 |
-
process.exit(1); // 退出程序,状态码 1 表示错误
|
| 56 |
-
}
|
| 57 |
-
|
| 58 |
-
// 检查必要的环境变量
|
| 59 |
const { passed, missingVars } = checkRequiredEnvVars();
|
| 60 |
if (!passed) {
|
| 61 |
-
console.error('\n错误:
|
| 62 |
missingVars.forEach(varName => {
|
| 63 |
console.error(` - ${varName}`);
|
| 64 |
});
|
| 65 |
-
console.error('\n请在
|
| 66 |
-
process.exit(1); //
|
| 67 |
}
|
| 68 |
-
|
| 69 |
console.log('环境检查通过,继续启动程序...');
|
| 70 |
}
|
| 71 |
|
| 72 |
module.exports = {
|
| 73 |
-
checkEnvFileExists,
|
| 74 |
checkRequiredEnvVars,
|
| 75 |
enforceEnvCheck
|
| 76 |
-
};
|
|
|
|
| 1 |
+
const fs = require('fs'); // 保留 fs 以防万一其他地方用到
|
| 2 |
const path = require('path');
|
| 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
/**
|
| 5 |
* 检查必要的环境变量是否已设置
|
| 6 |
* @returns {Object} 检查结果,包含是否通过和缺失的变量列表
|
| 7 |
*/
|
| 8 |
function checkRequiredEnvVars() {
|
| 9 |
+
// 定义应用启动绝对必要的核心环境变量列表
|
| 10 |
const requiredVars = [
|
| 11 |
+
'API_KEYS' // 假设管理员密码是启动和基本操作所必需的
|
| 12 |
+
// 根据你的应用逻辑,如果还有其他绝对必需的变量,请加在这里
|
| 13 |
];
|
| 14 |
|
| 15 |
+
// 如果启用了自动刷新,则检查 GitHub 相关配置是否完整
|
| 16 |
+
// 这些变量的值你已经在 Secrets 中设置了
|
| 17 |
if (process.env.ENABLE_AUTO_REFRESH === 'true') {
|
| 18 |
requiredVars.push(
|
| 19 |
'GITHUB_TOKEN',
|
| 20 |
'GITHUB_OWNER',
|
| 21 |
'GITHUB_REPO',
|
| 22 |
+
'GITHUB_WORKFLOW_ID'
|
| 23 |
+
// 'TRIGGER_WORKFLOW' - 这个通常可以有默认值或者不影响启动,除非你的代码强制需要它
|
| 24 |
);
|
| 25 |
+
// 注意:我们不检查 REGISTER_* 变量,因为它们更可能是 workflow 参数,而非应用启动的必需项。
|
| 26 |
}
|
| 27 |
|
| 28 |
+
// 检查每个必要的环境变量是否在 process.env 中有定义
|
| 29 |
const missingVars = requiredVars.filter(varName => !process.env[varName]);
|
| 30 |
|
| 31 |
return {
|
|
|
|
| 39 |
*/
|
| 40 |
function enforceEnvCheck() {
|
| 41 |
console.log('正在检查环境配置...');
|
| 42 |
+
|
| 43 |
+
// 检查必要的环境变量是否在 process.env 中设置 (来自 Secrets)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
const { passed, missingVars } = checkRequiredEnvVars();
|
| 45 |
if (!passed) {
|
| 46 |
+
console.error('\n错误: 缺少以下必要的环境变量:');
|
| 47 |
missingVars.forEach(varName => {
|
| 48 |
console.error(` - ${varName}`);
|
| 49 |
});
|
| 50 |
+
console.error('\n请在 Hugging Face Space Secrets 中设置这些变量后重试。\n');
|
| 51 |
+
process.exit(1); // 退出程序
|
| 52 |
}
|
| 53 |
+
|
| 54 |
console.log('环境检查通过,继续启动程序...');
|
| 55 |
}
|
| 56 |
|
| 57 |
module.exports = {
|
|
|
|
| 58 |
checkRequiredEnvVars,
|
| 59 |
enforceEnvCheck
|
| 60 |
+
};
|