feat:初始化时自动生成.env

This commit is contained in:
Jerry 2025-09-03 13:14:18 +08:00
parent 3200c39a7d
commit 258de609df
4 changed files with 23 additions and 43 deletions

View File

@ -1,34 +0,0 @@
// @ts-check
import eslint from '@eslint/js';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import globals from 'globals';
import tseslint from 'typescript-eslint';
export default tseslint.config(
{
ignores: ['eslint.config.mjs'],
},
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
eslintPluginPrettierRecommended,
{
languageOptions: {
globals: {
...globals.node,
...globals.jest,
},
sourceType: 'commonjs',
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-floating-promises': 'warn',
'@typescript-eslint/no-unsafe-argument': 'warn'
},
},
);

View File

@ -6,9 +6,24 @@ import { ResponseInterceptor } from './common/interceptors/response.interceptor'
import { AllExceptionsFilter } from './common/filters/all-exception.filter'; import { AllExceptionsFilter } from './common/filters/all-exception.filter';
import { SystemService } from './core/system/system.service'; import { SystemService } from './core/system/system.service';
import { WsAdapter } from '@nestjs/platform-ws'; import { WsAdapter } from '@nestjs/platform-ws';
import * as fs from 'fs';
import * as path from 'path';
async function bootstrap() { async function bootstrap() {
Logger.log('晶灵核心初始化..'); Logger.log('晶灵核心初始化..', '', 'Core');
const envPath = path.join(__dirname, '../.env');
const envExamplePath = path.join(__dirname, '../.envExample');
if (!fs.existsSync(envPath)) {
if (fs.existsSync(envExamplePath)) {
fs.copyFileSync(envExamplePath, envPath);
Logger.warn(`.env 文件已自动生成,请修改配置后重启核心..`, '', 'ENV');
process.exit(1);
} else {
Logger.error('配置模块初始化出错,请重新拉取应用!', '', 'ENV');
process.exit(1);
}
}
const app = await NestFactory.create(AppModule); const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('api', { app.setGlobalPrefix('api', {
exclude: [ exclude: [
@ -18,12 +33,13 @@ async function bootstrap() {
{ path: 'public/(.*)', method: RequestMethod.ALL }, { path: 'public/(.*)', method: RequestMethod.ALL },
], ],
}); });
app.useGlobalInterceptors(new ResponseInterceptor()); app.useGlobalInterceptors(new ResponseInterceptor());
app.useGlobalFilters(new AllExceptionsFilter()); app.useGlobalFilters(new AllExceptionsFilter());
const systemService = app.get(SystemService); const systemService = app.get(SystemService);
const restartDuration = systemService.checkRestartTime(); const restartDuration = systemService.checkRestartTime();
if (restartDuration) { if (restartDuration) {
new Logger('System').warn(`重启完成!耗时 ${restartDuration}`); Logger.warn(`重启完成!耗时 ${restartDuration}`, '', 'System');
} }
const config = new DocumentBuilder() const config = new DocumentBuilder()
.setTitle('晶灵核心') .setTitle('晶灵核心')
@ -38,7 +54,8 @@ async function bootstrap() {
Logger.error(`自动更新失败: ${err?.message}`, '', 'System'); Logger.error(`自动更新失败: ${err?.message}`, '', 'System');
}); });
} }
bootstrap().then(() => { bootstrap().then(() => {
Logger.log(`API服务已启动http://localhost:6868/api`); Logger.log(`API服务已启动http://localhost:6868/api`, '', 'Core');
Logger.log(`API文档 http://localhost:6868/docs`); Logger.log(`API文档 http://localhost:6868/docs`, '', 'Core');
}); });

View File

@ -1,7 +1,6 @@
import { Controller, Post, Inject, UseGuards, Param } from '@nestjs/common'; import { Controller, Post, Inject, UseGuards, Param } from '@nestjs/common';
import { ApiTags, ApiOperation, ApiBody, ApiProperty } from '@nestjs/swagger'; import { ApiTags, ApiOperation, ApiBody, ApiProperty } from '@nestjs/swagger';
import { SystemWebService } from './systemWeb.service'; import { SystemWebService } from './systemWeb.service';
import { ToolsService } from '../../core/tools/tools.service';
import { TokenAuthGuard } from '../../core/tools/token-auth.guard'; import { TokenAuthGuard } from '../../core/tools/token-auth.guard';
class WebServerDto { class WebServerDto {
@ -18,8 +17,6 @@ export class SystemWebController {
constructor( constructor(
@Inject(SystemWebService) @Inject(SystemWebService)
private readonly systemService: SystemWebService, private readonly systemService: SystemWebService,
@Inject(ToolsService)
private readonly toolService: ToolsService,
) {} ) {}
/** /**

View File

@ -1,12 +1,12 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { SystemWebController } from './systemWeb.controller'; import { SystemWebController } from './systemWeb.controller';
import { SystemWebService } from './systemWeb.service'; import { SystemWebService } from './systemWeb.service';
import { ToolsModule } from '../../core/tools/tools.module';
import { PathModule } from '../../core/path/path.module'; import { PathModule } from '../../core/path/path.module';
import { SystemModule } from '../../core/system/system.module'; import { SystemModule } from '../../core/system/system.module';
import { ToolsModule } from '../../core/tools/tools.module';
@Module({ @Module({
imports: [ToolsModule, SystemModule, PathModule], imports: [SystemModule, PathModule, ToolsModule],
controllers: [SystemWebController], controllers: [SystemWebController],
providers: [SystemWebService], providers: [SystemWebService],
}) })