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 |
+
};
|