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

Monorepo环境下transloco.config.js是否支持不同库构建的多应用?

Monorepo下Transloco多应用配置方案

首先明确结论:Monorepo环境下Transloco完全支持多应用独立配置,你遇到的Scoped Library Extractor默认仅读取单份配置的问题,可以通过以下两种方案解决,优先推荐第一种拆分配置的方式:

方案1:拆分独立配置文件,运行时指定路径

你可以将两份应用配置拆分为独立的文件存放于项目根目录,避免共用配置的冲突:

  • app 应用对应配置文件命名为 transloco.app.config.js
module.exports = {
  rootTranslationsPath: './src/app/assets/i18n/',
  langs: ['en', 'es'],
  scopedLibs: ['./projects/core/']
};
  • app2 应用对应配置文件命名为 transloco.app2.config.js
module.exports = {
  rootTranslationsPath: './src/app2/assets/i18n/',
  langs: ['en', 'es'],
  scopedLibs: ['./projects/core2/']
};

之后在 package.json 中为两个应用分别配置翻译提取脚本,通过 --config 参数指定对应配置文件路径即可:

{
  "scripts": {
    "transloco:extract:app": "transloco-extract --config transloco.app.config.js",
    "transloco:extract:app2": "transloco-extract --config transloco.app2.config.js"
  }
}

执行对应脚本即可将对应依赖库的翻译内容提取到对应应用的i18n目录下,互相完全独立无干扰。

方案2:动态配置(适合配置差异小的场景)

如果两个应用的翻译配置重合度很高,不想维护多份文件,也可以通过环境变量动态判断当前构建目标,输出对应配置:

const targetApp = process.env.TRANSLOCO_TARGET_APP;
const configMap = {
  app: {
    rootTranslationsPath: './src/app/assets/i18n/',
    langs: ['en', 'es'],
    scopedLibs: ['./projects/core/']
  },
  app2: {
    rootTranslationsPath: './src/app2/assets/i18n/',
    langs: ['en', 'es'],
    scopedLibs: ['./projects/core2/']
  }
};
module.exports = configMap[targetApp];

配套脚本如下,Windows环境需要提前安装cross-env包处理环境变量兼容性:

{
  "scripts": {
    "transloco:extract:app": "cross-env TRANSLOCO_TARGET_APP=app transloco-extract",
    "transloco:extract:app2": "cross-env TRANSLOCO_TARGET_APP=app2 transloco-extract"
  }
}

运行时加载注意事项

两个应用在各自的根模块导入TranslocoRootModule时,要注意指定各自的翻译资源加载路径,确保运行时加载的是当前应用对应的翻译文件,包含从依赖库提取的范围翻译内容。

内容的提问来源于stack exchange,提问作者TJ-

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:15:07