Skip to content

Commit 339cbc9

Browse files
authored
IBX-10331: Fixed memory leak while compiling assets (#200)
1 parent d27db2c commit 339cbc9

File tree

16 files changed

+113
-370
lines changed

16 files changed

+113
-370
lines changed

ibexa/commerce/5.0/encore/ibexa.webpack.config.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

ibexa/commerce/5.0/encore/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@
3838
"dev-server": "encore dev-server",
3939
"dev": "encore dev",
4040
"watch": "encore dev --watch",
41-
"build": "encore production --progress"
41+
"build": "encore production --progress",
42+
"ibexa:dev": "encore dev --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs",
43+
"ibexa:watch": "encore dev --watch --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs",
44+
"ibexa:build": "encore production --progress --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs"
4245
},
4346
"packageManager": "[email protected]"
4447
}
Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,15 @@
1-
const path = require('path');
21
const fs = require('fs');
3-
2+
const path = require('path');
43
const Encore = require('@symfony/webpack-encore');
5-
const getIbexaConfig = require('@ibexa/frontend-config/webpack-config');
6-
const getCustomConfigs = require('@ibexa/frontend-config/webpack-config/custom');
7-
8-
const bundles = require('./var/encore/ibexa.config.js');
9-
const managers = require('./var/encore/ibexa.config.manager.js');
10-
const setups = require('./var/encore/ibexa.config.setup.js');
4+
const getWebpackConfigs = require('@ibexa/frontend-config/webpack-config/get-configs');
115
const customConfigsPaths = require('./var/encore/ibexa.webpack.custom.config.js');
126

13-
const ibexaConfig = getIbexaConfig(Encore, {
14-
bundles,
15-
managers,
16-
setups
17-
});
18-
const customConfigs = getCustomConfigs(Encore, customConfigsPaths);
7+
const customConfigs = getWebpackConfigs(Encore, customConfigsPaths);
198
const isReactBlockPathCreated = fs.existsSync('./assets/page-builder/react/blocks');
209

2110
Encore.reset();
22-
Encore.setOutputPath('public/build/')
11+
Encore
12+
.setOutputPath('public/build/')
2313
.setPublicPath('/build')
2414
.enableSassLoader()
2515
.enableReactPreset((options) => {
@@ -31,32 +21,30 @@ Encore.setOutputPath('public/build/')
3121
to: 'images/[path][name].[ext]',
3222
pattern: /\.(png|svg)$/,
3323
})
34-
35-
// enables @babel/preset-env polyfills
3624
.configureBabelPresetEnv((config) => {
3725
config.useBuiltIns = 'usage';
3826
config.corejs = 3;
3927
});
4028

41-
// Welcome page stylesheets
42-
Encore.addEntry('welcome-page-css', [
43-
path.resolve(__dirname, './assets/scss/welcome-page.scss'),
44-
]);
29+
// Welcome page stylesheets
30+
Encore.addEntry('welcome-page-css', [
31+
path.resolve(__dirname, './assets/scss/welcome-page.scss'),
32+
]);
4533

46-
// Welcome page javascripts
47-
Encore.addEntry('welcome-page-js', [
48-
path.resolve(__dirname, './assets/js/welcome.page.js'),
49-
]);
34+
// Welcome page javascripts
35+
Encore.addEntry('welcome-page-js', [
36+
path.resolve(__dirname, './assets/js/welcome.page.js'),
37+
]);
5038

51-
if (isReactBlockPathCreated) {
52-
// React Blocks javascript
53-
Encore.addEntry('react-blocks-js', './assets/js/react.blocks.js');
54-
}
39+
if (isReactBlockPathCreated) {
40+
// React Blocks javascript
41+
Encore.addEntry('react-blocks-js', './assets/js/react.blocks.js');
42+
}
5543

56-
Encore.addEntry('app', './assets/app.js');
44+
Encore.addEntry('app', './assets/app.js');
5745

58-
const projectConfig = Encore.getWebpackConfig();
46+
const projectConfig = Encore.getWebpackConfig();
5947

60-
projectConfig.name = 'app';
48+
projectConfig.name = 'app';
6149

62-
module.exports = [ibexaConfig, ...customConfigs, projectConfig];
50+
module.exports = [...customConfigs, projectConfig];

ibexa/commerce/5.0/manifest.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
"yarn ibexa-generate-tsconfig --relative-paths": "script",
169169
"ibexa:encore:compile --config-name app": "symfony-cmd",
170170
"bazinga:js-translation:dump %PUBLIC_DIR%/assets --merge-domains": "symfony-cmd",
171-
"ibexa:encore:compile": "symfony-cmd"
171+
"ibexa:encore:compile": "symfony-cmd",
172+
"ibexa:encore:compile --frontend-configs-name ibexa,internals,libs,richtext": "symfony-cmd"
172173
}
173174
}

ibexa/experience/5.0/encore/ibexa.webpack.config.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

ibexa/experience/5.0/encore/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@
3838
"dev-server": "encore dev-server",
3939
"dev": "encore dev",
4040
"watch": "encore dev --watch",
41-
"build": "encore production --progress"
41+
"build": "encore production --progress",
42+
"ibexa:dev": "encore dev --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs",
43+
"ibexa:watch": "encore dev --watch --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs",
44+
"ibexa:build": "encore production --progress --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs"
4245
},
4346
"packageManager": "[email protected]"
4447
}
48+
Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,15 @@
1-
const path = require('path');
21
const fs = require('fs');
3-
2+
const path = require('path');
43
const Encore = require('@symfony/webpack-encore');
5-
const getIbexaConfig = require('@ibexa/frontend-config/webpack-config');
6-
const getCustomConfigs = require('@ibexa/frontend-config/webpack-config/custom');
7-
8-
const bundles = require('./var/encore/ibexa.config.js');
9-
const managers = require('./var/encore/ibexa.config.manager.js');
10-
const setups = require('./var/encore/ibexa.config.setup.js');
4+
const getWebpackConfigs = require('@ibexa/frontend-config/webpack-config/get-configs');
115
const customConfigsPaths = require('./var/encore/ibexa.webpack.custom.config.js');
126

13-
const ibexaConfig = getIbexaConfig(Encore, {
14-
bundles,
15-
managers,
16-
setups
17-
});
18-
const customConfigs = getCustomConfigs(Encore, customConfigsPaths);
7+
const customConfigs = getWebpackConfigs(Encore, customConfigsPaths);
198
const isReactBlockPathCreated = fs.existsSync('./assets/page-builder/react/blocks');
209

2110
Encore.reset();
22-
Encore.setOutputPath('public/build/')
11+
Encore
12+
.setOutputPath('public/build/')
2313
.setPublicPath('/build')
2414
.enableSassLoader()
2515
.enableReactPreset((options) => {
@@ -31,32 +21,30 @@ Encore.setOutputPath('public/build/')
3121
to: 'images/[path][name].[ext]',
3222
pattern: /\.(png|svg)$/,
3323
})
34-
35-
// enables @babel/preset-env polyfills
3624
.configureBabelPresetEnv((config) => {
3725
config.useBuiltIns = 'usage';
3826
config.corejs = 3;
3927
});
4028

41-
// Welcome page stylesheets
42-
Encore.addEntry('welcome-page-css', [
43-
path.resolve(__dirname, './assets/scss/welcome-page.scss'),
44-
]);
29+
// Welcome page stylesheets
30+
Encore.addEntry('welcome-page-css', [
31+
path.resolve(__dirname, './assets/scss/welcome-page.scss'),
32+
]);
4533

46-
// Welcome page javascripts
47-
Encore.addEntry('welcome-page-js', [
48-
path.resolve(__dirname, './assets/js/welcome.page.js'),
49-
]);
34+
// Welcome page javascripts
35+
Encore.addEntry('welcome-page-js', [
36+
path.resolve(__dirname, './assets/js/welcome.page.js'),
37+
]);
5038

51-
if (isReactBlockPathCreated) {
52-
// React Blocks javascript
53-
Encore.addEntry('react-blocks-js', './assets/js/react.blocks.js');
54-
}
39+
if (isReactBlockPathCreated) {
40+
// React Blocks javascript
41+
Encore.addEntry('react-blocks-js', './assets/js/react.blocks.js');
42+
}
5543

56-
Encore.addEntry('app', './assets/app.js');
44+
Encore.addEntry('app', './assets/app.js');
5745

58-
const projectConfig = Encore.getWebpackConfig();
46+
const projectConfig = Encore.getWebpackConfig();
5947

60-
projectConfig.name = 'app';
48+
projectConfig.name = 'app';
6149

62-
module.exports = [ibexaConfig, ...customConfigs, projectConfig];
50+
module.exports = [...customConfigs, projectConfig];

ibexa/experience/5.0/manifest.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@
161161
"yarn ibexa-generate-tsconfig --relative-paths": "script",
162162
"ibexa:encore:compile --config-name app": "symfony-cmd",
163163
"bazinga:js-translation:dump %PUBLIC_DIR%/assets --merge-domains": "symfony-cmd",
164-
"ibexa:encore:compile": "symfony-cmd"
164+
"ibexa:encore:compile": "symfony-cmd",
165+
"ibexa:encore:compile --frontend-configs-name ibexa,internals,libs,richtext": "symfony-cmd"
165166
}
166167
}

ibexa/headless/5.0/encore/ibexa.webpack.config.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

ibexa/headless/5.0/encore/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@
3838
"dev-server": "encore dev-server",
3939
"dev": "encore dev",
4040
"watch": "encore dev --watch",
41-
"build": "encore production --progress"
41+
"build": "encore production --progress",
42+
"ibexa:dev": "encore dev --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs",
43+
"ibexa:watch": "encore dev --watch --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs",
44+
"ibexa:build": "encore production --progress --config ./node_modules/@ibexa/frontend-config/ibexa.webpack.${configName:-all}.configs"
4245
},
4346
"packageManager": "[email protected]"
4447
}

0 commit comments

Comments
 (0)