diff --git a/build.gradle b/build.gradle index db48ceb6..085ac72e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,7 @@ import org.gradle.api.artifacts.DependencyResolveDetails +import java.util.zip.GZIPOutputStream + apply from: "build-version.gradle" def isFrontendProject(currentDir){ @@ -392,6 +394,31 @@ subprojects { } } + /*----------------------------------------------------------------- + * pnpm re install + *----------------------------------------------------------------*/ + task frontendNpmReInstall(type:Exec){ + if(isFrontendProject(file('.'))){ + workingDir '.' + if(org.gradle.internal.os.OperatingSystem.current().isWindows()){ + commandLine 'cmd', '/c', 'pnpm', 'install' + }else{ + commandLine 'pnpm', 'install' + } + }else{ + if(org.gradle.internal.os.OperatingSystem.current().isWindows()){ + commandLine 'cmd', '/c', 'cd', '.' + }else{ + commandLine 'cd', '.' + } + } + } + tasks.frontendNpmReInstall.doFirst { + if(isFrontendProject(file('.'))) { + println '开始执行 pnpm re install ......'; + } + } + /*----------------------------------------------------------------- * pnpm sync *----------------------------------------------------------------*/ @@ -647,6 +674,36 @@ subprojects { } } + task gzipFrontend(){} + tasks.gzipFrontend.doFirst { + if(isFrontendProject(file('.'))) { + println '开始执行 gzip frontend ......' + } + } + tasks.frontendModule.doLast { + if(isFrontendProject(file('.'))) { + // 压缩前端 js 和 css + def tree = fileTree('dist') { + include '**/*.js' + include '**/*.css' + } + tree.each { File file -> + println file.getAbsolutePath() + FileInputStream ins = new FileInputStream(file); + GZIPOutputStream gos = new GZIPOutputStream(new FileOutputStream(file.getAbsolutePath() + ".gz")); + def count; + def data = new byte[1024]; + while ((count = ins.read(data, 0, 1024)) != -1) { + gos.write(data, 0, count); + } + gos.finish(); + gos.flush(); + gos.close(); + ins.close(); + } + } + } + /*----------------------------------------------------------------- * 打包 jar 之前处理前端资源 *----------------------------------------------------------------*/ @@ -660,8 +717,9 @@ subprojects { // 定义前端构建任务的依赖及执行顺序 frontendNpmInstall.dependsOn(frontendUpdatePackageJson) frontendNpmSync.dependsOn(frontendNpmInstall) - frontendNpmBuild.dependsOn(frontendNpmSync) - frontendNpmProd.dependsOn(frontendNpmSync) + frontendNpmReInstall.dependsOn(frontendNpmSync); + frontendNpmBuild.dependsOn(frontendNpmReInstall) + frontendNpmProd.dependsOn(frontendNpmReInstall) // 资源处理前进行前端模块的构建 // 设置方式: 通过命令行 -D 传入目标环境参数 @@ -678,7 +736,8 @@ subprojects { frontendGenerateMenus.dependsOn(frontendGenerateI18n); frontendGenerateRoutes.dependsOn(frontendGenerateMenus); frontendModule.dependsOn(frontendGenerateRoutes); - frontend.dependsOn(frontendModule); + gzipFrontend.dependsOn(frontendModule); + frontend.dependsOn(gzipFrontend); //tasks.preBuild.dependsOn(frontend); processResources.dependsOn(frontend) @@ -687,13 +746,14 @@ subprojects { if(isFrontendProject(file('.'))) { if(project.name!='io.sc.platform.mvc.frontend'){ exclude("**/${project.name}/*.*"); -// exclude("**/${project.name}/javascript/codemirror.*"); -// exclude("**/${project.name}/javascript/echarts.*"); -// exclude("**/${project.name}/javascript/platform-core.*"); -// exclude("**/${project.name}/javascript/quasar.*"); -// exclude("**/${project.name}/javascript/vue.*"); -// exclude("**/${project.name}/fonts/*.*"); -// exclude("**/${project.name}/webjars/**/*.*"); + exclude("**/${project.name}/javascript/codemirror.*"); + exclude("**/${project.name}/javascript/echarts.*"); + exclude("**/${project.name}/javascript/maxgraph.*"); + exclude("**/${project.name}/javascript/platform-core.*"); + exclude("**/${project.name}/javascript/quasar.*"); + exclude("**/${project.name}/javascript/vue.*"); + exclude("**/${project.name}/fonts/*.*"); + exclude("**/${project.name}/webjars/**/*.*"); } } } diff --git a/erm.frontend/package.json b/erm.frontend/package.json index 72512da4..f2e5c261 100644 --- a/erm.frontend/package.json +++ b/erm.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/gradle.properties b/gradle.properties index a301c5ce..f0b1b210 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,7 +38,7 @@ application_version=1.0.0 platform_group=io.sc platform_version=8.1.49 platform_plugin_version=8.1.49 -platform_core_frontend_version=8.1.355 +platform_core_frontend_version=8.1.357 ########################################################### # dependencies version diff --git a/io.sc.engine.mv.frontend/package.json b/io.sc.engine.mv.frontend/package.json index b640220f..94e4a276 100644 --- a/io.sc.engine.mv.frontend/package.json +++ b/io.sc.engine.mv.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/io.sc.engine.rule.frontend/package.json b/io.sc.engine.rule.frontend/package.json index 5072a455..a18b884c 100644 --- a/io.sc.engine.rule.frontend/package.json +++ b/io.sc.engine.rule.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/io.sc.engine.st.frontend/package.json b/io.sc.engine.st.frontend/package.json index 8ba3a4f3..d8dbf7cf 100644 --- a/io.sc.engine.st.frontend/package.json +++ b/io.sc.engine.st.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/io.sc.platform.core.frontend/package.json b/io.sc.platform.core.frontend/package.json index a8771979..65d32ec5 100644 --- a/io.sc.platform.core.frontend/package.json +++ b/io.sc.platform.core.frontend/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.1.355", + "version": "8.1.357", "description": "前端核心包,用于快速构建前端的脚手架", "//main": "库的主文件", "main": "dist/platform-core.js", diff --git a/io.sc.platform.core.frontend/template-project/package.json b/io.sc.platform.core.frontend/template-project/package.json index 1eeec646..ea711471 100644 --- a/io.sc.platform.core.frontend/template-project/package.json +++ b/io.sc.platform.core.frontend/template-project/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.1.355", + "version": "8.1.357", "description": "前端核心包,用于快速构建前端的脚手架", "private": false, "keywords": [], @@ -106,7 +106,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "svg-path-commander": "2.0.10", "vue": "3.5.4", diff --git a/io.sc.platform.core/src/main/resources/META-INF/platform/plugins/application-properties.json b/io.sc.platform.core/src/main/resources/META-INF/platform/plugins/application-properties.json index 73013c2a..c766f8f3 100644 --- a/io.sc.platform.core/src/main/resources/META-INF/platform/plugins/application-properties.json +++ b/io.sc.platform.core/src/main/resources/META-INF/platform/plugins/application-properties.json @@ -48,6 +48,7 @@ "order": 300, "description": "web server configuration", "properties": [ + "server.compression.enabled = true", "server.ssl.enabled = false", "server.ssl.key-store = classpath:keystore/keystore.p12", "server.ssl.key-store-password = ENC(BWQMgGHmKLMSOsLQgyf1ejQl45HER/XG)", diff --git a/io.sc.platform.developer.frontend/package.json b/io.sc.platform.developer.frontend/package.json index 8454b413..796b9702 100644 --- a/io.sc.platform.developer.frontend/package.json +++ b/io.sc.platform.developer.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.gradle/templates/pgp/setup/build.gradle.txt b/io.sc.platform.gradle/templates/pgp/setup/build.gradle.txt index db48ceb6..085ac72e 100644 --- a/io.sc.platform.gradle/templates/pgp/setup/build.gradle.txt +++ b/io.sc.platform.gradle/templates/pgp/setup/build.gradle.txt @@ -1,5 +1,7 @@ import org.gradle.api.artifacts.DependencyResolveDetails +import java.util.zip.GZIPOutputStream + apply from: "build-version.gradle" def isFrontendProject(currentDir){ @@ -392,6 +394,31 @@ subprojects { } } + /*----------------------------------------------------------------- + * pnpm re install + *----------------------------------------------------------------*/ + task frontendNpmReInstall(type:Exec){ + if(isFrontendProject(file('.'))){ + workingDir '.' + if(org.gradle.internal.os.OperatingSystem.current().isWindows()){ + commandLine 'cmd', '/c', 'pnpm', 'install' + }else{ + commandLine 'pnpm', 'install' + } + }else{ + if(org.gradle.internal.os.OperatingSystem.current().isWindows()){ + commandLine 'cmd', '/c', 'cd', '.' + }else{ + commandLine 'cd', '.' + } + } + } + tasks.frontendNpmReInstall.doFirst { + if(isFrontendProject(file('.'))) { + println '开始执行 pnpm re install ......'; + } + } + /*----------------------------------------------------------------- * pnpm sync *----------------------------------------------------------------*/ @@ -647,6 +674,36 @@ subprojects { } } + task gzipFrontend(){} + tasks.gzipFrontend.doFirst { + if(isFrontendProject(file('.'))) { + println '开始执行 gzip frontend ......' + } + } + tasks.frontendModule.doLast { + if(isFrontendProject(file('.'))) { + // 压缩前端 js 和 css + def tree = fileTree('dist') { + include '**/*.js' + include '**/*.css' + } + tree.each { File file -> + println file.getAbsolutePath() + FileInputStream ins = new FileInputStream(file); + GZIPOutputStream gos = new GZIPOutputStream(new FileOutputStream(file.getAbsolutePath() + ".gz")); + def count; + def data = new byte[1024]; + while ((count = ins.read(data, 0, 1024)) != -1) { + gos.write(data, 0, count); + } + gos.finish(); + gos.flush(); + gos.close(); + ins.close(); + } + } + } + /*----------------------------------------------------------------- * 打包 jar 之前处理前端资源 *----------------------------------------------------------------*/ @@ -660,8 +717,9 @@ subprojects { // 定义前端构建任务的依赖及执行顺序 frontendNpmInstall.dependsOn(frontendUpdatePackageJson) frontendNpmSync.dependsOn(frontendNpmInstall) - frontendNpmBuild.dependsOn(frontendNpmSync) - frontendNpmProd.dependsOn(frontendNpmSync) + frontendNpmReInstall.dependsOn(frontendNpmSync); + frontendNpmBuild.dependsOn(frontendNpmReInstall) + frontendNpmProd.dependsOn(frontendNpmReInstall) // 资源处理前进行前端模块的构建 // 设置方式: 通过命令行 -D 传入目标环境参数 @@ -678,7 +736,8 @@ subprojects { frontendGenerateMenus.dependsOn(frontendGenerateI18n); frontendGenerateRoutes.dependsOn(frontendGenerateMenus); frontendModule.dependsOn(frontendGenerateRoutes); - frontend.dependsOn(frontendModule); + gzipFrontend.dependsOn(frontendModule); + frontend.dependsOn(gzipFrontend); //tasks.preBuild.dependsOn(frontend); processResources.dependsOn(frontend) @@ -687,13 +746,14 @@ subprojects { if(isFrontendProject(file('.'))) { if(project.name!='io.sc.platform.mvc.frontend'){ exclude("**/${project.name}/*.*"); -// exclude("**/${project.name}/javascript/codemirror.*"); -// exclude("**/${project.name}/javascript/echarts.*"); -// exclude("**/${project.name}/javascript/platform-core.*"); -// exclude("**/${project.name}/javascript/quasar.*"); -// exclude("**/${project.name}/javascript/vue.*"); -// exclude("**/${project.name}/fonts/*.*"); -// exclude("**/${project.name}/webjars/**/*.*"); + exclude("**/${project.name}/javascript/codemirror.*"); + exclude("**/${project.name}/javascript/echarts.*"); + exclude("**/${project.name}/javascript/maxgraph.*"); + exclude("**/${project.name}/javascript/platform-core.*"); + exclude("**/${project.name}/javascript/quasar.*"); + exclude("**/${project.name}/javascript/vue.*"); + exclude("**/${project.name}/fonts/*.*"); + exclude("**/${project.name}/webjars/**/*.*"); } } } diff --git a/io.sc.platform.gradle/templates/pgp/setup/gradle.properties b/io.sc.platform.gradle/templates/pgp/setup/gradle.properties index a301c5ce..f0b1b210 100644 --- a/io.sc.platform.gradle/templates/pgp/setup/gradle.properties +++ b/io.sc.platform.gradle/templates/pgp/setup/gradle.properties @@ -38,7 +38,7 @@ application_version=1.0.0 platform_group=io.sc platform_version=8.1.49 platform_plugin_version=8.1.49 -platform_core_frontend_version=8.1.355 +platform_core_frontend_version=8.1.357 ########################################################### # dependencies version diff --git a/io.sc.platform.lcdp.frontend/package.json b/io.sc.platform.lcdp.frontend/package.json index 5ead7e6e..31711deb 100644 --- a/io.sc.platform.lcdp.frontend/package.json +++ b/io.sc.platform.lcdp.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/io.sc.platform.mvc.frontend/package.json b/io.sc.platform.mvc.frontend/package.json index b25161f1..943699c9 100644 --- a/io.sc.platform.mvc.frontend/package.json +++ b/io.sc.platform.mvc.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/io.sc.platform.scheduler.manager.frontend/package.json b/io.sc.platform.scheduler.manager.frontend/package.json index bae7c112..419610c2 100644 --- a/io.sc.platform.scheduler.manager.frontend/package.json +++ b/io.sc.platform.scheduler.manager.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4", diff --git a/io.sc.platform.system.frontend/package.json b/io.sc.platform.system.frontend/package.json index df2e9ea7..aefbd5ba 100644 --- a/io.sc.platform.system.frontend/package.json +++ b/io.sc.platform.system.frontend/package.json @@ -66,7 +66,8 @@ "webpack-bundle-analyzer": "4.10.2", "webpack-cli": "5.1.4", "webpack-dev-server": "5.1.0", - "webpack-merge": "6.0.1" + "webpack-merge": "6.0.1", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -105,7 +106,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "svg-path-commander": "2.0.10", "vue": "3.5.4", diff --git a/io.sc.standard.frontend/package.json b/io.sc.standard.frontend/package.json index 9ebfc79f..6d09ca09 100644 --- a/io.sc.standard.frontend/package.json +++ b/io.sc.standard.frontend/package.json @@ -66,7 +66,8 @@ "webpack-dev-server": "5.1.0", "webpack-merge": "6.0.1", "@vue/babel-plugin-jsx": "1.2.4", - "tailwindcss": "3.4.10" + "tailwindcss": "3.4.10", + "compression-webpack-plugin": "11.1.0" }, "dependencies": { "@codemirror/autocomplete": "6.18.0", @@ -93,7 +94,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.2.2", - "platform-core": "8.1.355", + "platform-core": "8.1.357", "quasar": "2.16.11", "tailwindcss": "3.4.10", "vue": "3.5.4",