Skip to content

Commit 153bf41

Browse files
committed
microfrontend
1 parent 93f977f commit 153bf41

File tree

6 files changed

+57
-28
lines changed

6 files changed

+57
-28
lines changed

generators/angular/generator.mts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,23 @@ export default class AngularGenerator extends BaseApplicationGenerator<Generator
150150
});
151151
}
152152

153+
get postWriting() {
154+
return this.asPostWritingTaskGroup({
155+
microfrontend({ application }) {
156+
if (!application.microfrontend) return;
157+
const conditional = application.applicationTypeMicroservice ? "targetOptions.target === 'serve' ? {} : " : '';
158+
this.addWebpackConfig(
159+
`${conditional}require('./webpack.microfrontend')(config, options, targetOptions)`,
160+
application.clientFramework
161+
);
162+
},
163+
});
164+
}
165+
166+
get [BaseApplicationGenerator.POST_WRITING]() {
167+
return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
168+
}
169+
153170
get [BaseApplicationGenerator.WRITING_ENTITIES]() {
154171
return this.delegateTasksToBlueprint(() => this.writingEntities);
155172
}

generators/client/generator.mjs

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -199,40 +199,26 @@ export default class JHipsterClientGenerator extends BaseApplicationGenerator {
199199
get postWriting() {
200200
return this.asPostWritingTaskGroup({
201201
packageJsonScripts({ application }) {
202-
const packageJsonStorage = this.createStorage('package.json');
203-
const scriptsStorage = packageJsonStorage.createStorage('scripts');
202+
const defaultEnvironment = process.env.JHI_PROFILE?.includes('dev') ? 'dev' : 'prod';
204203

205-
const packageJsonConfigStorage = packageJsonStorage.createStorage('config').createProxy();
206-
if (process.env.JHI_PROFILE) {
207-
packageJsonConfigStorage.default_environment = process.env.JHI_PROFILE.includes('dev') ? 'dev' : 'prod';
208-
}
209-
210-
const devDependencies = packageJsonStorage.createStorage('devDependencies');
211-
devDependencies.set('wait-on', application.nodeDependencies['wait-on']);
212-
devDependencies.set('concurrently', application.nodeDependencies.concurrently);
204+
this.packageJson.merge({
205+
config: {
206+
default_environment: defaultEnvironment,
207+
},
208+
devDependencies: {
209+
'wait-on': application.nodeDependencies['wait-on'],
210+
concurrently: application.nodeDependencies.concurrently,
211+
},
212+
});
213213

214+
const scriptsStorage = this.packageJson.createStorage('scripts');
214215
if (application.clientFrameworkReact) {
215216
scriptsStorage.set('ci:frontend:test', 'npm run webapp:build:$npm_package_config_default_environment && npm run test-ci');
216217
} else {
217218
scriptsStorage.set('ci:frontend:build', 'npm run webapp:build:$npm_package_config_default_environment');
218219
scriptsStorage.set('ci:frontend:test', 'npm run ci:frontend:build && npm test');
219220
}
220221
},
221-
222-
microfrontend({ application }) {
223-
if (!application.microfrontend) return;
224-
if (application.clientFrameworkAngular) {
225-
const conditional = application.applicationTypeMicroservice ? "targetOptions.target === 'serve' ? {} : " : '';
226-
this.addWebpackConfig(
227-
`${conditional}require('./webpack.microfrontend')(config, options, targetOptions)`,
228-
application.clientFramework
229-
);
230-
} else if (application.clientFrameworkVue || application.clientFrameworkReact) {
231-
this.addWebpackConfig("require('./webpack.microfrontend')({ serve: options.env.WEBPACK_SERVE })", application.clientFramework);
232-
} else {
233-
throw new Error(`Client framework ${application.clientFramework} doesn't support microfrontends`);
234-
}
235-
},
236222
});
237223
}
238224

generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,5 @@ module.exports = ({ serve }) => {
4848
}),
4949
<&- fragments.pluginsSection() &>
5050
],
51-
output: {
52-
publicPath: 'auto',
53-
},
5451
};
5552
};

generators/react/generator.mjs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,19 @@ export default class ReactGenerator extends BaseApplicationGenerator {
135135
return this.delegateTasksToBlueprint(() => this.writingEntities);
136136
}
137137

138+
get postWriting() {
139+
return this.asPostWritingTaskGroup({
140+
microfrontend({ application }) {
141+
if (!application.microfrontend) return;
142+
this.addWebpackConfig("require('./webpack.microfrontend')({ serve: options.env.WEBPACK_SERVE })", application.clientFramework);
143+
},
144+
});
145+
}
146+
147+
get [BaseApplicationGenerator.POST_WRITING]() {
148+
return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
149+
}
150+
138151
get postWritingEntities() {
139152
return {
140153
postWriteEntitiesFiles,

generators/vue/generator.mjs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,19 @@ export default class VueGenerator extends BaseApplicationGenerator {
125125
return this.delegateTasksToBlueprint(() => this.writingEntities);
126126
}
127127

128+
get postWriting() {
129+
return this.asPostWritingTaskGroup({
130+
microfrontend({ application }) {
131+
if (!application.microfrontend) return;
132+
this.addWebpackConfig("require('./webpack.microfrontend')(options)", application.clientFramework);
133+
},
134+
});
135+
}
136+
137+
get [BaseApplicationGenerator.POST_WRITING]() {
138+
return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
139+
}
140+
128141
get postWritingEntities() {
129142
return {
130143
postWriteEntityFiles,

generators/vue/templates/vue.config.js.ejs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ const { defineConfig } = require('@vue/cli-service');
2121
module.exports = defineConfig({
2222
lintOnSave: true,
2323
outputDir: './<%= clientDistDir %>',
24+
<%_ if (microfrontend) { _%>
25+
publicPath: 'auto',
26+
<%_ } _%>
2427
css: {
2528
loaderOptions: {
2629
css: {

0 commit comments

Comments
 (0)