利用posthtml-minify-classnames优化项目:减小HTML和CSS文件体积

需积分: 5 0 下载量 104 浏览量 更新于2024-11-15 收藏 159KB ZIP 举报
资源摘要信息: "posthtml-minify-classnames是一个PostHTML插件,它的主要功能是重写HTML和CSS文件中的类名和ID,从而减小文件的大小。这种技术特别适用于需要优化性能的场合,比如在小型代码竞赛中,或者在嵌入式设备,如路由器管理面板中,以及在移动和响应网站中,以保持较低的延迟。 PostHTML是一种基于Node.js的工具,它使用插件来处理HTML文件。PostHTML的工作原理是解析HTML文件,然后使用插件对其进行修改,最后输出修改后的HTML文件。在这个过程中,posthtml-minify-classnames插件就会对HTML和CSS文件中的类名和ID进行重写。 重写类名和ID的主要目的是减小文件的大小。在开发过程中,开发者可能会使用长而详细的类名和ID来保持代码的可读性和可维护性。然而,这些长类名和ID在生产环境中可能会增加文件的大小,从而增加加载时间。使用posthtml-minify-classnames,开发者可以在开发过程中保持长类名和ID,而在构建过程中自动将它们转换为更短的形式。 这种技术的一个重要用例是小型代码竞赛。在这种情况下,开发者需要尽可能地减小文件大小,以提高加载速度。另一个用例是嵌入式设备,如路由器管理面板。在这种情况下,设备的存储空间和处理能力可能非常有限,因此减小文件大小是非常重要的。此外,移动和响应式网站也可以从减小文件大小中受益,因为这有助于降低延迟,提高用户体验。 posthtml-minify-classnames还支持svg href属性的重写。这使得插件不仅可以处理HTML和CSS文件,还可以处理SVG文件中的类名和ID。这使得插件在处理图形和图像文件时更加灵活和强大。 需要注意的是,虽然减小文件大小可以提高性能,但也可能会对代码的可读性和可维护性产生影响。因此,在使用posthtml-minify-classnames时,开发者需要在性能优化和代码可读性之间做出权衡。 总的来说,posthtml-minify-classnames是一个非常有用的工具,特别是在需要优化文件大小的场合。它可以帮助开发者在保持代码可读性的同时,减小HTML和CSS文件的大小,从而提高网站的性能。"

const config = { base: './', // index.html文件所在位置 root: './', // js导入的资源路径,src resolve: { alias, }, define: { 'process.env': {} }, server: { // 如果使用docker-compose开发模式,设置为false open: true, port: process.env.VITE_CLI_PORT, proxy: { // 把key的路径代理到target位置 // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VITE_BASE_API]: { // 需要代理的路径 例如 '/api' target: `${process.env.VITE_BASE_PATH}/`, // 代理到 目标路径 changeOrigin: true, rewrite: path => path.replace(new RegExp('^' + process.env.VITE_BASE_API), ''), }, [process.env.VITE_BASE_EXPORT_API]: { // 需要代理的路径 例如 '/api' target: `${process.env.VITE_BASE_REPORTAPI}/`, // 代理到 目标路径 changeOrigin: true, rewrite: path => path.replace(new RegExp('^' + process.env.VITE_BASE_EXPORT_API), ''), }, }, }, build: { target: 'es2017', minify: 'terser', // 是否进行压缩,boolean | 'terser' | 'esbuild',默认使用terser manifest: false, // 是否产出manifest.json sourcemap: false, // 是否产出sourcemap.json outDir: 'dist', // 产出目录 // rollupOptions, }, esbuild, optimizeDeps, plugins: [ GvaPositionServer(), GvaPosition(), legacyPlugin({ targets: ['Android > 39', 'Chrome >= 60', 'Safari >= 10.1', 'iOS >= 10.3', 'Firefox >= 54', 'Edge >= 15'], }), vuePlugin(), [Banner(\n Build based on gin-vue-admin \n Time : ${timestamp})] ], css: { preprocessorOptions: { scss: { additionalData: @use "@/style/element/index.scss" as *;, } } }, } ENV = 'production' VITE_PUBLIC_PATH = '/devOnlineStatus/' VITE_CLI_PORT = 8080 VITE_SERVER_PORT = 8888 VITE_BASE_API = /api #下方修改为你的线上ip VITE_BASE_PATH = https://demo.gin-vue-admin.com # router 模式 VITE_APP_USE_HASH = true 请帮我修改以上代码,当build打包时,前端页面url新增VITE_PUBLIC_PATH前缀

2023-07-20 上传
2023-06-13 上传