You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NX工作区添加供NestJS与Angular共享的常量变量库?

在NX工作区添加共享常量/变量库的步骤

1. 创建通用共享库

使用NX CLI生成纯TypeScript共享库,确保同时兼容Angular客户端与NestJS API:

nx generate @nx/js:library shared-constants --directory=libs/shared-constants --importPath=@your-workspace/shared-constants
  • --directory:指定库在libs目录下的存放路径
  • --importPath:设置统一导入别名(替换your-workspace为你的NX工作区名称,简化后续项目引用)

2. 组织库的内容结构

在libs/shared-constants/src/lib目录下创建对应文件,规整共享内容:

  • 新建constants.ts存放固定常量:
export const API_BASE_PATH = '/api/v1';
export const MAX_ITEM_LIMIT = 50;
export const STORAGE_KEY_PREFIX = 'app_';
  • 新建enums.ts存放枚举类型:
export enum UserRole {
  Admin = 'ADMIN',
  Regular = 'REGULAR',
  Guest = 'GUEST'
}
  • 在index.ts中统一导出所有内容,简化外部引用:
export * from './constants';
export * from './enums';

3. 在项目中引入使用

  • Angular客户端:在组件、服务或模块中直接导入使用
import { API_BASE_PATH, UserRole } from '@your-workspace/shared-constants';

@Component({ /* ... */ })
export class UserComponent {
  adminRole = UserRole.Admin;
  apiUrl = `${window.location.origin}${API_BASE_PATH}`;
}
  • NestJS API:在控制器、服务中导入使用
import { MAX_ITEM_LIMIT, UserRole } from '@your-workspace/shared-constants';

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get()
  getUsers(@Query('limit') limit?: number) {
    const queryLimit = limit ? Math.min(limit, MAX_ITEM_LIMIT) : MAX_ITEM_LIMIT;
    return this.usersService.getUsers(queryLimit);
  }
}

4. 验证库的可用性

先编译共享库确保无语法错误:

nx build shared-constants

再分别启动客户端和API项目验证功能:

nx serve your-angular-app
nx serve your-nest-api

内容的提问来源于stack exchange,提问作者Lorraine Ram-El

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:05:16