Files
wwjcloud-nest-v1/wwjcloud/eslint.config.mjs
万物街 1cd5d3bdef feat: 完成 NestJS 后端核心底座开发 (M1-M6) 和 Ant Design Vue 前端迁移
主要更新:
1. 后端核心底座完成 (M1-M6):
   - 健康检查、指标监控、分布式锁
   - 事件总线、队列系统、事务管理
   - 安全守卫、多租户隔离、存储适配器
   - 审计日志、配置管理、多语言支持

2. 前端迁移到 Ant Design Vue:
   - 从 Element Plus 迁移到 Ant Design Vue
   - 完善 system 模块 (role/menu/dept)
   - 修复依赖和配置问题

3. 文档完善:
   - AI 开发工作流文档
   - 架构约束和开发规范
   - 项目进度跟踪

4. 其他改进:
   - 修复编译错误和类型问题
   - 完善测试用例
   - 优化项目结构
2025-08-27 11:24:22 +08:00

148 lines
4.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// @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',
// 禁止任何形式的路径别名导入,统一使用相对路径
'no-restricted-imports': [
'error',
{
patterns: [
{
group: ['@*', 'src/*', '/*'],
message:
'禁止使用路径别名与根路径导入,请使用相对路径(../ 或 ./)按照分层规范访问公开 API',
},
],
},
],
},
},
// 分层导入约束:严格遵循依赖方向
{
files: ['src/common/**/*.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'error',
{
patterns: [
// Common 层只能依赖 Core 层,禁止依赖 App/Vendor 层
{ group: ['@app/*', 'src/app/*', '@vendor/*', 'src/vendor/*'], message: 'Common 层禁止依赖 App/Vendor请依赖 Core 抽象' },
// 禁止依赖其他域内部实现
{ group: ['**/*/internal/**'], message: '禁止依赖其他域内部实现,请通过其公共 API' },
// 禁止依赖测试代码
{ group: ['**/test/**', 'test/**'], message: 'Common 层禁止依赖测试代码,测试代码应放在 test 目录' },
],
},
],
},
},
{
files: ['src/core/**/*.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'error',
{
patterns: [
// Core 层禁止依赖任何上层实现
{ group: ['@app/*', 'src/app/*', '@common/*', 'src/common/*', '@vendor/*', 'src/vendor/*'], message: 'Core 层禁止依赖上层与 Vendor 实现Core 是最底层基础设施' },
// 禁止依赖其他域内部实现
{ group: ['**/*/internal/**'], message: '禁止依赖其他域内部实现,请通过其公共 API' },
// 禁止依赖测试代码
{ group: ['**/test/**', 'test/**'], message: 'Core 层禁止依赖测试代码,测试代码应放在 test 目录' },
],
},
],
},
},
{
files: ['src/app/**/*.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'error',
{
patterns: [
// App 层禁止依赖其他域内部实现
{ group: ['**/*/internal/**'], message: '禁止依赖其他域内部实现,请通过其公共 API' },
// 禁止依赖测试代码
{ group: ['**/test/**', 'test/**'], message: 'App 层禁止依赖测试代码,测试代码应放在 test 目录' },
],
},
],
},
},
{
files: ['src/vendor/**/*.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'error',
{
patterns: [
// Vendor 层禁止依赖业务层
{ group: ['@app/*', 'src/app/*', '@common/*', 'src/common/*'], message: 'Vendor 层禁止依赖业务层,只能依赖 Core 抽象' },
// 禁止依赖其他域内部实现
{ group: ['**/*/internal/**'], message: '禁止依赖其他域内部实现,请通过其公共 API' },
// 禁止依赖测试代码
{ group: ['**/test/**', 'test/**'], message: 'Vendor 层禁止依赖测试代码,测试代码应放在 test 目录' },
],
},
],
},
},
// 测试代码约束:只能放在 test 目录
{
files: ['src/**/*.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'error',
{
patterns: [
// 禁止在 src 目录下创建测试代码
{ group: ['**/test/**', 'test/**'], message: '测试代码禁止放在 src 目录下,请统一放在项目根目录的 test 目录' },
],
},
],
},
},
// 测试目录约束:测试代码可以依赖所有层
{
files: ['test/**/*.{ts,tsx}'],
rules: {
'no-restricted-imports': [
'warn',
{
patterns: [
// 测试代码可以依赖所有层,但建议使用相对路径
{ group: ['@*'], message: '测试代码建议使用相对路径导入,避免路径别名' },
],
},
],
},
},
);