Skip to content

Commit 8ddf7a1

Browse files
authored
vue: adjusts for client bundler (#27515)
1 parent 29b7206 commit 8ddf7a1

File tree

4 files changed

+88
-63
lines changed

4 files changed

+88
-63
lines changed

generators/client/files-common.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ export const files = {
2525
templates: ['README.md.jhi.client', '.prettierignore.jhi.client'],
2626
},
2727
clientRootTemplatesBlock({
28-
condition: generator => generator.microfrontend && (generator.clientFrameworkVue || generator.clientFrameworkReact),
28+
condition: generator =>
29+
generator.microfrontend && generator.clientBundlerWebpack && (generator.clientFrameworkVue || generator.clientFrameworkReact),
2930
templates: ['webpack/webpack.microfrontend.js.jhi'],
3031
}),
3132
{

generators/vue/__snapshots__/generator.spec.ts.snap

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,9 @@ exports[`generator - vue gateway-jwt-skipUserManagement(true)-withAdminUi(false)
449449
"clientRoot/vitest.config.mts": {
450450
"stateCleared": "modified",
451451
},
452+
"package.json": {
453+
"stateCleared": "modified",
454+
},
452455
}
453456
`;
454457

@@ -973,6 +976,9 @@ exports[`generator - vue gateway-oauth2-withAdminUi(true)-skipJhipsterDependenci
973976
"clientRoot/vitest.config.mts": {
974977
"stateCleared": "modified",
975978
},
979+
"package.json": {
980+
"stateCleared": "modified",
981+
},
976982
}
977983
`;
978984

@@ -1452,6 +1458,9 @@ exports[`generator - vue microservice-jwt-skipUserManagement(false)-withAdminUi(
14521458
"clientRoot/webpack/webpack.prod.js": {
14531459
"stateCleared": "modified",
14541460
},
1461+
"package.json": {
1462+
"stateCleared": "modified",
1463+
},
14551464
}
14561465
`;
14571466

generators/vue/generator.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,73 @@ export default class VueGenerator extends BaseApplicationGenerator {
177177

178178
get postWriting() {
179179
return this.asPostWritingTaskGroup({
180+
addPackageJsonScripts({ application }) {
181+
const { clientBundlerVite, clientBundlerWebpack, clientPackageManager, prettierExtensions } = application;
182+
if (clientBundlerVite) {
183+
this.packageJson.merge({
184+
scripts: {
185+
'webapp:build:dev': `${clientPackageManager} run vite-build`,
186+
'webapp:build:prod': `${clientPackageManager} run vite-build`,
187+
'webapp:dev': `${clientPackageManager} run vite-serve`,
188+
'webapp:serve': `${clientPackageManager} run vite-serve`,
189+
'vite-serve': 'vite',
190+
'vite-build': 'vite build',
191+
},
192+
});
193+
} else if (clientBundlerWebpack) {
194+
this.packageJson.merge({
195+
scripts: {
196+
'prettier:check': `prettier --check "{,src/**/,webpack/,.blueprint/**/}*.{${prettierExtensions}}"`,
197+
'prettier:format': `prettier --write "{,src/**/,webpack/,.blueprint/**/}*.{${prettierExtensions}}"`,
198+
'webapp:build:dev': `${clientPackageManager} run webpack -- --mode development --env stats=minimal`,
199+
'webapp:build:prod': `${clientPackageManager} run webpack -- --mode production --env stats=minimal`,
200+
'webapp:dev': `${clientPackageManager} run webpack-dev-server -- --mode development --env stats=normal`,
201+
'webpack-dev-server': 'webpack serve --config webpack/webpack.common.js',
202+
webpack: 'webpack --config webpack/webpack.common.js',
203+
},
204+
});
205+
}
206+
},
207+
addMicrofrontendDependencies({ application }) {
208+
if (!application.microfrontend) return;
209+
if (application.clientBundlerVite) {
210+
this.packageJson.merge({
211+
devDependencies: {
212+
'@originjs/vite-plugin-federation': '1.3.6',
213+
},
214+
});
215+
} else if (application.clientBundlerWebpack) {
216+
this.packageJson.merge({
217+
devDependencies: {
218+
'@module-federation/utilities': null,
219+
'browser-sync-webpack-plugin': null,
220+
'copy-webpack-plugin': null,
221+
'css-loader': null,
222+
'css-minimizer-webpack-plugin': null,
223+
'html-webpack-plugin': null,
224+
'mini-css-extract-plugin': null,
225+
'postcss-loader': null,
226+
'sass-loader': null,
227+
'terser-webpack-plugin': null,
228+
'ts-loader': null,
229+
'vue-loader': null,
230+
'vue-style-loader': null,
231+
webpack: null,
232+
'webpack-bundle-analyzer': null,
233+
'webpack-cli': null,
234+
'webpack-dev-server': null,
235+
'webpack-merge': null,
236+
'workbox-webpack-plugin': null,
237+
...(application.enableTranslation
238+
? {
239+
'folder-hash': null,
240+
'merge-jsons-webpack-plugin': null,
241+
}
242+
: {}),
243+
},
244+
});
245+
}
246+
},
180247
addIndexAsset({ source, application }) {
181248
if (!application.clientBundlerVite) return;
182249
source.addExternalResourceToRoot!({

generators/vue/templates/package.json.ejs

Lines changed: 10 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -55,36 +55,6 @@
5555
"vue-router": "<%= nodeDependencies['vue-router'] %>"
5656
},
5757
"devDependencies": {
58-
<%_ if (applicationTypeGateway && microfrontend) { _%>
59-
"@module-federation/utilities": "<%= nodeDependencies['@module-federation/utilities'] %>",
60-
<%_ } _%>
61-
<%_ if (microfrontend) { _%>
62-
<%_ if (clientBundlerVite) { _%>
63-
"@originjs/vite-plugin-federation": "1.3.6",
64-
<%_ } _%>
65-
"browser-sync-webpack-plugin": "<%= nodeDependencies['browser-sync-webpack-plugin'] %>",
66-
"copy-webpack-plugin": "<%= nodeDependencies['copy-webpack-plugin'] %>",
67-
"css-loader": "<%= nodeDependencies['css-loader'] %>",
68-
"css-minimizer-webpack-plugin": "<%= nodeDependencies['css-minimizer-webpack-plugin'] %>",
69-
"html-webpack-plugin": "<%= nodeDependencies['html-webpack-plugin'] %>",
70-
<%_ if (enableTranslation) { _%>
71-
"folder-hash": "<%= nodeDependencies['folder-hash'] %>",
72-
"merge-jsons-webpack-plugin": "<%= nodeDependencies['merge-jsons-webpack-plugin'] %>",
73-
<%_ } _%>
74-
"mini-css-extract-plugin": "<%= nodeDependencies['mini-css-extract-plugin'] %>",
75-
"postcss-loader": "<%= nodeDependencies['postcss-loader'] %>",
76-
"sass-loader": "<%= nodeDependencies['sass-loader'] %>",
77-
"terser-webpack-plugin": "<%= nodeDependencies['terser-webpack-plugin'] %>",
78-
"ts-loader": "<%= nodeDependencies['ts-loader'] %>",
79-
"vue-loader": "<%= nodeDependencies['vue-loader'] %>",
80-
"vue-style-loader": "<%= nodeDependencies['vue-style-loader'] %>",
81-
"webpack": "<%= nodeDependencies['webpack'] %>",
82-
"webpack-bundle-analyzer": "<%= nodeDependencies['webpack-bundle-analyzer'] %>",
83-
"webpack-cli": "<%= nodeDependencies['webpack-cli'] %>",
84-
"webpack-dev-server": "<%= nodeDependencies['webpack-dev-server'] %>",
85-
"webpack-merge": "<%= nodeDependencies['webpack-merge'] %>",
86-
"workbox-webpack-plugin": "<%= nodeDependencies['workbox-webpack-plugin'] %>",
87-
<%_ } _%>
8858
"@eslint/js": null,
8959
"@pinia/testing": "<%= nodeDependencies['@pinia/testing'] %>",
9060
"@types/node": "<%= nodeDependencies['@types/node'] %>",
@@ -127,48 +97,26 @@
12797
"default_environment": "prod"
12898
},
12999
"scripts": {
130-
<%_ if (microfrontend) { %>
131-
"prettier:check": "prettier --check \"{,src/**/,webpack/,.blueprint/**/}*.{<%= prettierExtensions %>}\"",
132-
"prettier:format": "prettier --write \"{,src/**/,webpack/,.blueprint/**/}*.{<%= prettierExtensions %>}\"",
133-
<%_ } else { %>
134-
"prettier:check": "prettier --check \"{,src/**/,.blueprint/**/}*.{<%= prettierExtensions %>}\"",
135-
"prettier:format": "prettier --write \"{,src/**/,.blueprint/**/}*.{<%= prettierExtensions %>}\"",
136-
<%_ } %>
137-
"lint": "eslint .",
138-
"lint:fix": "eslint . --fix",
100+
"build": "<%= clientPackageManager %> run webapp:prod --",
101+
"build-watch": "concurrently 'npm run webapp:build:dev -- --watch'<% if(!skipServer) { %> npm:backend:start<% } %>",
139102
"cleanup": "rimraf <%= this.relativeDir(clientRootDir, temporaryDir) %>",
140103
"clean-www": "rimraf <%= this.relativeDir(clientRootDir, clientDistDir) %>",
104+
"lint": "eslint .",
105+
"lint:fix": "eslint . --fix",
106+
"prettier:check": "prettier --check \"{,src/**/,.blueprint/**/}*.{<%= prettierExtensions %>}\"",
107+
"prettier:format": "prettier --write \"{,src/**/,.blueprint/**/}*.{<%= prettierExtensions %>}\"",
108+
"serve": "<%= clientPackageManager %> run start --",
141109
"start": "<%= clientPackageManager %> run webapp:dev --",
142110
"start-tls": "<%= clientPackageManager %> run webapp:dev -- --env.tls",
143-
"serve": "<%= clientPackageManager %> run start --",
144-
"build": "<%= clientPackageManager %> run webapp:prod --",
145-
"build-watch": "concurrently 'npm run webapp:build:dev -- --watch'<% if(!skipServer) { %> npm:backend:start<% } %>",
146-
"vitest-run": "vitest --run --coverage",
147-
"vitest": "vitest",
148111
"pretest": "<%= clientPackageManager %> run lint",
149112
"test": "<%= clientPackageManager %> run vitest-run --",
150113
"test:watch": "<%= clientPackageManager %> run vitest",
114+
"vitest-run": "vitest --run --coverage",
115+
"vitest": "vitest",
151116
"watch": "concurrently npm:start<% if(!skipServer) { %> npm:backend:start<% } %>",
152117
"webapp:build": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:dev --",
153-
<%_ if (microfrontend) { %>
154-
"webapp:build:dev": "<%= clientPackageManager %> run webpack -- --mode development --env stats=minimal",
155-
"webapp:build:prod": "<%= clientPackageManager %> run webpack -- --mode production --env stats=minimal",
156-
"webapp:dev": "<%= clientPackageManager %> run webpack-dev-server -- --mode development --env stats=normal",
157-
<%_ } else { %>
158-
"webapp:build:dev": "<%= clientPackageManager %> run vite-build",
159-
"webapp:build:prod": "<%= clientPackageManager %> run vite-build",
160-
"webapp:dev": "<%= clientPackageManager %> run vite-serve",
161-
"webapp:serve": "<%= clientPackageManager %> run vite-serve",
162-
<%_ } %>
163118
"webapp:prod": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:prod --",
164-
"webapp:test": "<%= clientPackageManager %> run test --",
165-
<%_ if (microfrontend) { %>
166-
"webpack-dev-server": "webpack serve --config webpack/webpack.common.js",
167-
"webpack": "webpack --config webpack/webpack.common.js"
168-
<%_ } else { %>
169-
"vite-serve": "vite",
170-
"vite-build": "vite build"
171-
<%_ } %>
119+
"webapp:test": "<%= clientPackageManager %> run test --"
172120
},
173121
"browserslist": [
174122
"> 1%",

0 commit comments

Comments
 (0)