mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 05:14:54 +00:00
chore: adjust webpack output (#11573)
- automatically split i18n resources into i18n-langs.{lang} naming
- force worker resources to be bundled in one file
This commit is contained in:
@@ -45,122 +45,120 @@ export const SUPPORTED_LANGUAGES: Record<
|
|||||||
name: 'Korean (South Korea)',
|
name: 'Korean (South Korea)',
|
||||||
originalName: '한국어(대한민국)',
|
originalName: '한국어(대한민국)',
|
||||||
flagEmoji: '🇰🇷',
|
flagEmoji: '🇰🇷',
|
||||||
resource: () => /* webpackChunkName "i18n-ko" */ import('./ko.json'),
|
resource: () => import('./ko.json'),
|
||||||
},
|
},
|
||||||
'pt-BR': {
|
'pt-BR': {
|
||||||
name: 'Portuguese (Brazil)',
|
name: 'Portuguese (Brazil)',
|
||||||
originalName: 'português (Brasil)',
|
originalName: 'português (Brasil)',
|
||||||
flagEmoji: '🇧🇷',
|
flagEmoji: '🇧🇷',
|
||||||
resource: () => /* webpackChunkName "i18n-pt_BR" */ import('./pt-BR.json'),
|
resource: () => import('./pt-BR.json'),
|
||||||
},
|
},
|
||||||
'zh-Hans': {
|
'zh-Hans': {
|
||||||
name: 'Simplified Chinese',
|
name: 'Simplified Chinese',
|
||||||
originalName: '简体中文',
|
originalName: '简体中文',
|
||||||
flagEmoji: '🇨🇳',
|
flagEmoji: '🇨🇳',
|
||||||
resource: () =>
|
resource: () => import('./zh-Hans.json'),
|
||||||
/* webpackChunkName "i18n-zh_Hans" */ import('./zh-Hans.json'),
|
|
||||||
},
|
},
|
||||||
'zh-Hant': {
|
'zh-Hant': {
|
||||||
name: 'Traditional Chinese',
|
name: 'Traditional Chinese',
|
||||||
originalName: '繁體中文',
|
originalName: '繁體中文',
|
||||||
flagEmoji: '🇭🇰',
|
flagEmoji: '🇭🇰',
|
||||||
resource: () =>
|
resource: () => import('./zh-Hant.json'),
|
||||||
/* webpackChunkName "i18n-zh_Hant" */ import('./zh-Hant.json'),
|
|
||||||
},
|
},
|
||||||
fr: {
|
fr: {
|
||||||
name: 'French',
|
name: 'French',
|
||||||
originalName: 'français',
|
originalName: 'français',
|
||||||
flagEmoji: '🇫🇷',
|
flagEmoji: '🇫🇷',
|
||||||
resource: () => /* webpackChunkName "i18n-fr" */ import('./fr.json'),
|
resource: () => import('./fr.json'),
|
||||||
},
|
},
|
||||||
es: {
|
es: {
|
||||||
name: 'Spanish',
|
name: 'Spanish',
|
||||||
originalName: 'español',
|
originalName: 'español',
|
||||||
flagEmoji: '🇪🇸',
|
flagEmoji: '🇪🇸',
|
||||||
resource: () => /* webpackChunkName "i18n-es" */ import('./es.json'),
|
resource: () => import('./es.json'),
|
||||||
},
|
},
|
||||||
'es-AR': {
|
'es-AR': {
|
||||||
name: 'Spanish (Argentina)',
|
name: 'Spanish (Argentina)',
|
||||||
originalName: 'español (Argentina)',
|
originalName: 'español (Argentina)',
|
||||||
flagEmoji: '🇦🇷',
|
flagEmoji: '🇦🇷',
|
||||||
resource: () => /* webpackChunkName "i18n-es_AR" */ import('./es-AR.json'),
|
resource: () => import('./es-AR.json'),
|
||||||
},
|
},
|
||||||
'es-CL': {
|
'es-CL': {
|
||||||
name: 'Spanish (Chile)',
|
name: 'Spanish (Chile)',
|
||||||
originalName: 'español (Chile)',
|
originalName: 'español (Chile)',
|
||||||
flagEmoji: '🇨🇱',
|
flagEmoji: '🇨🇱',
|
||||||
resource: () => /* webpackChunkName "i18n-es_CL" */ import('./es-CL.json'),
|
resource: () => import('./es-CL.json'),
|
||||||
},
|
},
|
||||||
de: {
|
de: {
|
||||||
name: 'German',
|
name: 'German',
|
||||||
originalName: 'Deutsch',
|
originalName: 'Deutsch',
|
||||||
flagEmoji: '🇩🇪',
|
flagEmoji: '🇩🇪',
|
||||||
resource: () => /* webpackChunkName "i18n-de" */ import('./de.json'),
|
resource: () => import('./de.json'),
|
||||||
},
|
},
|
||||||
ru: {
|
ru: {
|
||||||
name: 'Russian',
|
name: 'Russian',
|
||||||
originalName: 'русский',
|
originalName: 'русский',
|
||||||
flagEmoji: '🇷🇺',
|
flagEmoji: '🇷🇺',
|
||||||
resource: () => /* webpackChunkName "i18n-ru" */ import('./ru.json'),
|
resource: () => import('./ru.json'),
|
||||||
},
|
},
|
||||||
ja: {
|
ja: {
|
||||||
name: 'Japanese',
|
name: 'Japanese',
|
||||||
originalName: '日本語',
|
originalName: '日本語',
|
||||||
flagEmoji: '🇯🇵',
|
flagEmoji: '🇯🇵',
|
||||||
resource: () => /* webpackChunkName "i18n-ja" */ import('./ja.json'),
|
resource: () => import('./ja.json'),
|
||||||
},
|
},
|
||||||
it: {
|
it: {
|
||||||
name: 'Italian',
|
name: 'Italian',
|
||||||
originalName: 'italiano',
|
originalName: 'italiano',
|
||||||
flagEmoji: '🇮🇹',
|
flagEmoji: '🇮🇹',
|
||||||
resource: () => /* webpackChunkName "i18n-it" */ import('./it.json'),
|
resource: () => import('./it.json'),
|
||||||
},
|
},
|
||||||
ca: {
|
ca: {
|
||||||
name: 'Catalan',
|
name: 'Catalan',
|
||||||
originalName: 'català',
|
originalName: 'català',
|
||||||
flagEmoji: '🇦🇩',
|
flagEmoji: '🇦🇩',
|
||||||
resource: () => /* webpackChunkName "i18n-ca" */ import('./ca.json'),
|
resource: () => import('./ca.json'),
|
||||||
},
|
},
|
||||||
da: {
|
da: {
|
||||||
name: 'Danish',
|
name: 'Danish',
|
||||||
originalName: 'dansk',
|
originalName: 'dansk',
|
||||||
flagEmoji: '🇩🇰',
|
flagEmoji: '🇩🇰',
|
||||||
resource: () => /* webpackChunkName "i18n-da" */ import('./da.json'),
|
resource: () => import('./da.json'),
|
||||||
},
|
},
|
||||||
hi: {
|
hi: {
|
||||||
name: 'Hindi',
|
name: 'Hindi',
|
||||||
originalName: 'हिन्दी',
|
originalName: 'हिन्दी',
|
||||||
flagEmoji: '🇮🇳',
|
flagEmoji: '🇮🇳',
|
||||||
resource: () => /* webpackChunkName "i18n-hi" */ import('./hi.json'),
|
resource: () => import('./hi.json'),
|
||||||
},
|
},
|
||||||
'sv-SE': {
|
'sv-SE': {
|
||||||
name: 'Swedish (Sweden)',
|
name: 'Swedish (Sweden)',
|
||||||
originalName: 'svenska (Sverige)',
|
originalName: 'svenska (Sverige)',
|
||||||
flagEmoji: '🇸🇪',
|
flagEmoji: '🇸🇪',
|
||||||
resource: () => /* webpackChunkName "i18n-sv_SE" */ import('./sv-SE.json'),
|
resource: () => import('./sv-SE.json'),
|
||||||
},
|
},
|
||||||
ur: {
|
ur: {
|
||||||
name: 'Urdu',
|
name: 'Urdu',
|
||||||
originalName: 'اردو',
|
originalName: 'اردو',
|
||||||
flagEmoji: '🇵🇰',
|
flagEmoji: '🇵🇰',
|
||||||
resource: () => /* webpackChunkName "i18n-ur" */ import('./ur.json'),
|
resource: () => import('./ur.json'),
|
||||||
},
|
},
|
||||||
ar: {
|
ar: {
|
||||||
name: 'Arabic',
|
name: 'Arabic',
|
||||||
originalName: 'العربية',
|
originalName: 'العربية',
|
||||||
flagEmoji: '🇸🇦',
|
flagEmoji: '🇸🇦',
|
||||||
resource: () => /* webpackChunkName "i18n-ar" */ import('./ar.json'),
|
resource: () => import('./ar.json'),
|
||||||
},
|
},
|
||||||
fa: {
|
fa: {
|
||||||
name: 'Persian',
|
name: 'Persian',
|
||||||
originalName: 'فارسی',
|
originalName: 'فارسی',
|
||||||
flagEmoji: '🇮🇷',
|
flagEmoji: '🇮🇷',
|
||||||
resource: () => /* webpackChunkName "i18n-ar" */ import('./fa.json'),
|
resource: () => import('./fa.json'),
|
||||||
},
|
},
|
||||||
uk: {
|
uk: {
|
||||||
name: 'Ukrainian',
|
name: 'Ukrainian',
|
||||||
originalName: 'українська',
|
originalName: 'українська',
|
||||||
flagEmoji: '🇺🇦',
|
flagEmoji: '🇺🇦',
|
||||||
resource: () => /* webpackChunkName "i18n-uk" */ import('./uk.json'),
|
resource: () => import('./uk.json'),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,6 +5,19 @@ function testPackageName(regexp: RegExp): (module: any) => boolean {
|
|||||||
|
|
||||||
// https://hackernoon.com/the-100-correct-way-to-split-your-chunks-with-webpack-f8a9df5b7758
|
// https://hackernoon.com/the-100-correct-way-to-split-your-chunks-with-webpack-f8a9df5b7758
|
||||||
export const productionCacheGroups = {
|
export const productionCacheGroups = {
|
||||||
|
i18n: {
|
||||||
|
test: /frontend[\\/]i18n[\\/]/,
|
||||||
|
name: (module: any) => {
|
||||||
|
const name = module.resource.match(/[\\/]([^\\/]+)\.json$/)?.[1];
|
||||||
|
if (name && name !== 'en') {
|
||||||
|
return `i18n-langs.${name}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'i18n';
|
||||||
|
},
|
||||||
|
priority: 200,
|
||||||
|
enforce: true,
|
||||||
|
},
|
||||||
asyncVendor: {
|
asyncVendor: {
|
||||||
test: /[\\/]node_modules[\\/]/,
|
test: /[\\/]node_modules[\\/]/,
|
||||||
name(module: any) {
|
name(module: any) {
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ export function createWorkerTargetConfig(
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
name: entry,
|
name: entry,
|
||||||
context: pkg.path.value,
|
context: ProjectRoot.value,
|
||||||
experiments: {
|
experiments: {
|
||||||
topLevelAwait: true,
|
topLevelAwait: true,
|
||||||
outputModule: false,
|
outputModule: false,
|
||||||
@@ -541,6 +541,9 @@ export function createWorkerTargetConfig(
|
|||||||
{} as Record<string, string>
|
{} as Record<string, string>
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
new webpack.optimize.LimitChunkCountPlugin({
|
||||||
|
maxChunks: 1,
|
||||||
|
}),
|
||||||
process.env.SENTRY_AUTH_TOKEN &&
|
process.env.SENTRY_AUTH_TOKEN &&
|
||||||
process.env.SENTRY_ORG &&
|
process.env.SENTRY_ORG &&
|
||||||
process.env.SENTRY_PROJECT &&
|
process.env.SENTRY_PROJECT &&
|
||||||
|
|||||||
Reference in New Issue
Block a user