Skip to content

Commit 4ea6b97

Browse files
committed
manual chunking
1 parent 81a32e6 commit 4ea6b97

File tree

9 files changed

+47
-8
lines changed

9 files changed

+47
-8
lines changed

Makefile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ deploy-appbundle:
5959
$(BUILD_DIR)/close3.min.js \
6060
$(BUILD_DIR)/close3.min.js.map \
6161
$(DEPLOY_DIR) || true
62+
cp \
63+
$(BUILD_DIR)/excalidraw.min.js \
64+
$(BUILD_DIR)/excalidraw.min.js.map \
65+
$(BUILD_DIR)/rnnoise.min.js \
66+
$(BUILD_DIR)/rnnoise.min.js.map \
67+
$(BUILD_DIR)/ts-ebml.min.js \
68+
$(BUILD_DIR)/ts-ebml.min.js.map \
69+
$(BUILD_DIR)/zxcvbn.min.js \
70+
$(BUILD_DIR)/zxcvbn.min.js.map \
71+
$(BUILD_DIR)/vendor.min.js \
72+
$(BUILD_DIR)/vendor.min.js.map \
73+
$(BUILD_DIR)/react.min.js \
74+
$(BUILD_DIR)/react.min.js.map \
75+
$(DEPLOY_DIR) || true
6276

6377
deploy-lib-jitsi-meet:
6478
cp \

react/features/base/util/isInsecureRoomName.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ function isValidUUID(str: string) {
3232
*/
3333
function _getZxcvbn() {
3434
if (!_zxcvbnPromise) {
35-
_zxcvbnPromise = import('zxcvbn').then(module => module.default);
35+
_zxcvbnPromise = import(/* webpackChunkName: "zxcvbn" */ 'zxcvbn').then(module => module.default);
3636
}
3737

3838
return _zxcvbnPromise;

react/features/recording/components/Recording/LocalRecordingManager.web.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ const LocalRecordingManager: ILocalRecordingManager = {
347347
*/
348348
async function fixDuration(data: Blob, duration: number): Promise<Blob> {
349349
// Dynamically import ts-ebml library
350-
const ebml = await import('ts-ebml/dist/EBML.min.js' as any);
350+
const ebml = await import(/* webpackChunkName: "ts-ebml" */ 'ts-ebml/dist/EBML.min.js' as any);
351351

352352
const decoder = new ebml.Decoder();
353353
const reader = new ebml.Reader();

react/features/stream-effects/noise-suppression/NoiseSuppressorWorklet.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class NoiseSuppressorWorklet extends AudioWorkletProcessor {
7171
private async _initializeProcessor() {
7272
try {
7373
// Dynamically import the rnnoise module
74-
const rnnoiseModule = await import('@jitsi/rnnoise-wasm' as any);
74+
const rnnoiseModule = await import(/* webpackChunkName: "rnnoise" */ '@jitsi/rnnoise-wasm' as any);
7575
const { createRNNWasmModuleSync } = rnnoiseModule;
7676

7777
this._denoiseProcessor = new RnnoiseProcessor(createRNNWasmModuleSync());

react/features/stream-effects/rnnoise/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ let rnnoiseModule: Promise<any> | undefined;
1515
*/
1616
export function createRnnoiseProcessor() {
1717
if (!rnnoiseModule) {
18-
rnnoiseModule = import('@jitsi/rnnoise-wasm' as any).then(m => {
18+
rnnoiseModule = import(/* webpackChunkName: "rnnoise" */ '@jitsi/rnnoise-wasm' as any).then(m => {
1919
const { createRNNWasmModule } = m;
2020

2121
return createRNNWasmModule();

react/features/whiteboard/components/web/WhiteboardApp.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default class WhiteboardApp extends BaseApp<any> {
3333
if (!roomId && !roomKey) {
3434
try {
3535
// Dynamically import generateCollaborationLinkData
36-
const excalidrawModule = await import('@jitsi/excalidraw');
36+
const excalidrawModule = await import(/* webpackChunkName: "excalidraw" */ '@jitsi/excalidraw');
3737
const collabDetails = await excalidrawModule.generateCollaborationLinkData();
3838

3939
roomId = collabDetails.roomId;

react/features/whiteboard/hooks/useExcalidraw.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let _excalidrawPromise: Promise<any> | null = null;
99
*/
1010
function _getExcalidraw() {
1111
if (!_excalidrawPromise) {
12-
_excalidrawPromise = import('@jitsi/excalidraw');
12+
_excalidrawPromise = import(/* webpackChunkName: "excalidraw" */ '@jitsi/excalidraw');
1313
}
1414

1515
return _excalidrawPromise;

react/features/whiteboard/middleware.web.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ async function setNewWhiteboardOpen(store: IStore) {
143143
const { dispatch, getState } = store;
144144

145145
// Dynamically import generateCollaborationLinkData
146-
const excalidrawModule = await import('@jitsi/excalidraw');
146+
const excalidrawModule = await import(/* webpackChunkName: "excalidraw" */ '@jitsi/excalidraw');
147147
const collabLinkData = await excalidrawModule.generateCollaborationLinkData();
148148
const state = getState();
149149
const conference = getCurrentConference(state);

webpack.config.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,32 @@ function getConfig(options = {}) {
186186
},
187187
optimization: {
188188
concatenateModules: isProduction,
189-
minimize: isProduction
189+
minimize: isProduction,
190+
splitChunks: {
191+
chunks: 'all',
192+
cacheGroups: {
193+
// React chunk for React and React-DOM (higher priority)
194+
react: {
195+
test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
196+
name: 'react',
197+
chunks: 'all',
198+
priority: 20,
199+
enforce: true
200+
},
201+
vendor: {
202+
test: /[\\/]node_modules[\\/]/,
203+
name: 'vendor',
204+
chunks: 'initial', // Only bundle initial chunks, not async chunks
205+
priority: 10,
206+
enforce: true
207+
},
208+
default: {
209+
minChunks: 2,
210+
priority: -20,
211+
reuseExistingChunk: true
212+
}
213+
}
214+
}
190215
},
191216
output: {
192217
filename: `[name]${isProduction ? '.min' : ''}.js`,

0 commit comments

Comments
 (0)