generator-mico-cli 0.2.18 → 0.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generators/micro-react/index.js +10 -0
- package/generators/micro-react/templates/.eslintrc.js +24 -1
- package/generators/micro-react/templates/CICD/start_dev.sh +1 -1
- package/generators/micro-react/templates/apps/layout/config/config.dev.ts +3 -3
- package/generators/micro-react/templates/apps/layout/config/config.prod.development.ts +2 -2
- package/generators/micro-react/templates/apps/layout/config/config.prod.testing.ts +1 -1
- package/generators/micro-react/templates/apps/layout/config/config.prod.ts +1 -1
- package/generators/micro-react/templates/apps/layout/docs/common-intl.md +15 -15
- package/generators/micro-react/templates/apps/layout/docs/feature-/344/270/273/351/242/230/350/211/262/345/210/207/346/215/242.md +1 -1
- package/generators/micro-react/templates/apps/layout/docs/feature-/345/276/256/345/211/215/347/253/257/346/250/241/345/274/217.md +1 -1
- package/generators/micro-react/templates/apps/layout/package.json +0 -1
- package/generators/micro-react/templates/apps/layout/src/app.tsx +2 -4
- package/generators/micro-react/templates/apps/layout/src/common/locale.ts +21 -68
- package/generators/micro-react/templates/apps/layout/src/common/menu/parser.ts +5 -4
- package/generators/micro-react/templates/apps/layout/src/common/request/url-resolver.ts +1 -1
- package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/index.tsx +4 -4
- package/generators/micro-react/templates/apps/layout/src/components/RightContent/AvatarDropdown.tsx +4 -5
- package/generators/micro-react/templates/apps/layout/src/global.less +1 -1
- package/generators/micro-react/templates/apps/layout/src/layouts/index.less +1 -1
- package/generators/micro-react/templates/apps/layout/src/locales/en-US.ts +3 -0
- package/generators/micro-react/templates/apps/layout/src/locales/zh-CN.ts +3 -0
- package/generators/micro-react/templates/apps/layout/src/pages/Home/index.tsx +7 -1
- package/generators/micro-react/templates/apps/layout/src/services/config/type.ts +2 -4
- package/generators/micro-react/templates/package.json +3 -1
- package/generators/micro-react/templates/packages/common-intl/README.md +8 -8
- package/generators/micro-react/templates/packages/common-intl/src/intl.ts +13 -5678
- package/generators/micro-react/templates/packages/common-intl/src/utils.ts +22 -21
- package/package.json +1 -1
- package/generators/micro-react/templates/packages/common-intl/.turbo/turbo-build.log +0 -13
- package/generators/micro-react/templates/packages/common-intl/dist/index.d.ts +0 -3
- package/generators/micro-react/templates/packages/common-intl/dist/index.js +0 -4388
- package/generators/micro-react/templates/packages/common-intl/dist/indexedDBUtils.d.ts +0 -13
- package/generators/micro-react/templates/packages/common-intl/dist/intl.d.ts +0 -1022
- package/generators/micro-react/templates/packages/common-intl/dist/utils.d.ts +0 -122
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { isIndexedDBSupported, openDatabase } from './indexedDBUtils';
|
|
2
2
|
|
|
3
|
+
// ============ Window 类型扩展 ============
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 扩展 Window 接口,声明微前端共享的全局翻译缓存
|
|
7
|
+
*/
|
|
8
|
+
declare global {
|
|
9
|
+
interface Window {
|
|
10
|
+
__MICO_COMMON_INTL_TRANSLATIONS__?: Record<string, Record<string, string>>;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
3
14
|
// ============ 常量定义 ============
|
|
4
15
|
|
|
5
16
|
export const LANG = {
|
|
@@ -75,14 +86,6 @@ const API_CONFIG = {
|
|
|
75
86
|
|
|
76
87
|
// ============ 全局状态 ============
|
|
77
88
|
|
|
78
|
-
/**
|
|
79
|
-
* 微前端共享全局状态 Key
|
|
80
|
-
* 在 qiankun 微前端架构中,主应用和子应用各自有独立的 JS 运行时,
|
|
81
|
-
* 模块级变量无法共享。使用 window 对象存储全局状态,确保主应用获取到的文案
|
|
82
|
-
* 可以被所有子应用访问。
|
|
83
|
-
*/
|
|
84
|
-
const GLOBAL_TRANSLATIONS_KEY = '__MICO_COMMON_INTL_TRANSLATIONS__';
|
|
85
|
-
|
|
86
89
|
/**
|
|
87
90
|
* 语言管理工具
|
|
88
91
|
* 支持三种配置渠道,优先级从高到低:
|
|
@@ -136,7 +139,7 @@ function getBrowserLocale(): ILang {
|
|
|
136
139
|
if (typeof window === 'undefined') {
|
|
137
140
|
return DEFAULT_LOCALE;
|
|
138
141
|
}
|
|
139
|
-
const browserLang = navigator.language
|
|
142
|
+
const browserLang = navigator.language;
|
|
140
143
|
// 检查语言前缀(如 zh-TW -> zh-CN)
|
|
141
144
|
const langPrefix = browserLang.split('-')[0];
|
|
142
145
|
const matchedLocale = SUPPORTED_LOCALES.find((locale) =>
|
|
@@ -194,12 +197,12 @@ export function setLocaleToStorage(locale: ILang): void {
|
|
|
194
197
|
* 获取共享的翻译缓存对象
|
|
195
198
|
*/
|
|
196
199
|
function getSharedTranslationsCache(): Record<string, Record<string, string>> {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
200
|
+
if (typeof window !== "undefined") {
|
|
201
|
+
if (!window.__MICO_COMMON_INTL_TRANSLATIONS__) {
|
|
202
|
+
window.__MICO_COMMON_INTL_TRANSLATIONS__ = {};
|
|
203
|
+
}
|
|
204
|
+
return window.__MICO_COMMON_INTL_TRANSLATIONS__;
|
|
205
|
+
}
|
|
203
206
|
// 非浏览器环境使用本地缓存
|
|
204
207
|
return {};
|
|
205
208
|
}
|
|
@@ -313,8 +316,6 @@ function getTranslationsFromCacheSync(
|
|
|
313
316
|
// ============ i18n 函数 ============
|
|
314
317
|
|
|
315
318
|
/**
|
|
316
|
-
* @see https://micoworld.feishu.cn/wiki/wikcnBMzhhc8qpAVawAoySZanrg#DS1YNZ
|
|
317
|
-
*
|
|
318
319
|
* 国际化翻译函数
|
|
319
320
|
*
|
|
320
321
|
* 从全局变量缓存中获取翻译后的文案,支持插值替换
|
|
@@ -327,17 +328,17 @@ function getTranslationsFromCacheSync(
|
|
|
327
328
|
*
|
|
328
329
|
* @example
|
|
329
330
|
* // 无插值示例
|
|
330
|
-
* i18n({ key: '
|
|
331
|
+
* i18n({ key: 'common_cancel', defaultMessage: '取消' })
|
|
331
332
|
* // 返回 'Cancel' 或兜底文案 '取消'
|
|
332
333
|
*
|
|
333
334
|
* @example
|
|
334
335
|
* // 单个插值示例
|
|
335
|
-
* i18n({ key: '
|
|
336
|
+
* i18n({ key: 'common_page_total_count', interpolations: [pagination.total], defaultMessage: `总数量: ${pagination.total}条` })
|
|
336
337
|
* // 如果翻译文案为 '总数量: %AA%条',则返回 '总数量: 100条'
|
|
337
338
|
*
|
|
338
339
|
* @example
|
|
339
340
|
* // 多个插值示例
|
|
340
|
-
* i18n({ key: '
|
|
341
|
+
* i18n({ key: 'some_key', interpolations: [valueA, valueB, valueC], defaultMessage: `XXX${valueA}YYY${valueB}ZZZ${valueC}` })
|
|
341
342
|
* // 如果翻译文案为 'XXX%AA%YYY%BB%ZZZ%CC%',则按顺序替换占位符
|
|
342
343
|
*/
|
|
343
344
|
export function i18n({
|
|
@@ -433,7 +434,7 @@ export function initIntl(params: IInitIntlParams) {
|
|
|
433
434
|
throw new Error('参数 app_name 不能为空');
|
|
434
435
|
}
|
|
435
436
|
|
|
436
|
-
// @ts-
|
|
437
|
+
// @ts-expect-error - process.env 类型在不同构建环境中可能不兼容
|
|
437
438
|
return requestInstance(process.env.LOCALE_REQUEST_URL || API_CONFIG[process.env.REACT_APP_ENV as keyof typeof API_CONFIG] || API_CONFIG.production, {
|
|
438
439
|
method: 'GET',
|
|
439
440
|
params: {
|
package/package.json
CHANGED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
> @portal-web/common-intl@0.0.1 build /Users/mico/projects/portal-web/packages/common-intl
|
|
4
|
-
> vite build && tsc --emitDeclarationOnly
|
|
5
|
-
|
|
6
|
-
[36mvite v7.3.1 [32mbuilding client environment for production...[36m[39m
|
|
7
|
-
[2K[1Gtransforming (1) [2msrc/index.ts[22m[2K[1G[32m✓[39m 4 modules transformed.
|
|
8
|
-
[2K[1Grendering chunks (1)...[2K[1G[32m
|
|
9
|
-
[36m[vite:dts][32m Start generate declaration files...[39m
|
|
10
|
-
[2K[1Gcomputing gzip size (0)...[2K[1Gcomputing gzip size (1)...[2K[1G[2mdist/[22m[36mindex.js [39m[1m[2m155.52 kB[22m[1m[22m[2m │ gzip: 21.87 kB[22m
|
|
11
|
-
[32m[36m[vite:dts][32m Declaration files built in 808ms.
|
|
12
|
-
[39m
|
|
13
|
-
[32m✓ built in 957ms[39m
|