Vite与Windi CSS结合的前端示例教程

需积分: 9 0 下载量 138 浏览量 更新于2024-11-24 收藏 26KB ZIP 举报
资源摘要信息: "vite_windi_sample" 1. Vite介绍: Vite是一个现代前端构建工具,它提供了丰富的功能以提升开发者的开发体验。Vite在开发服务器启动后能够快速启动并提供冷启动时间和热更新速度的优化,这对开发过程中的即时反馈非常有帮助。它使用了原生ESM(ECMAScript Modules)来加载模块,因此能够在开发过程中直接使用import语句导入依赖,而无需构建步骤。Vite还通过预构建依赖来提升性能,它可以自动检测哪些依赖被频繁更改,并将它们缓存起来以避免重复构建。 2. Windi CSS介绍: Windi CSS是一个基于原子类(atomic classes)设计的CSS框架,它可以用来快速构建用户界面。它与传统的CSS预处理器不同,Windi CSS不需要预编译步骤,也不需要将所有样式封装在单一的CSS文件中。相反,Windi CSS通过组合简单的工具类来生成最终的样式表,使得样式管理更为灵活和高效。它支持按需加载,仅引入使用到的样式,从而优化加载时间。 3. JavaScript项目结构与配置: 项目名为vite_windi_sample,该名称表明该项目结合了Vite构建工具和Windi CSS框架。项目可能使用了Vite的默认配置文件vite.config.js,同时也包含了一个主要的JavaScript文件,如vite_windi_sample-main.js,用来作为项目的入口文件。项目结构可能遵循了典型的Vite项目结构,包括src目录用于存放源代码、public目录用于存放静态资源、dist目录用于存放构建后的文件等。 4. 使用Vite的优势: - 极速冷启动:Vite在开发模式下不需要打包,直接通过ESM的方式加载模块,从而实现了极速的冷启动。 - 按需编译:Vite在构建时只编译更改的文件,而不是整个项目,大大减少了构建时间。 - 优化的热模块替换(HMR):Vite提供了更快速的热更新,开发者在修改代码时能够即时看到效果。 - 现代浏览器兼容:Vite内置了对现代浏览器特性的支持,无需转换旧代码。 - 插件生态系统:Vite支持丰富的插件,可以轻松扩展功能。 5. 使用Windi CSS的优势: - 轻量级:Windi CSS生成的样式表体积小,加载速度快。 - 零配置:Windi CSS遵循零配置原则,开箱即用,无需复杂的配置。 - 无需构建:Windi CSS在开发和生产环境中均不需要构建步骤。 - 自动优化:Windi CSS可以自动优化样式的使用,通过删除未使用的CSS规则来减小文件大小。 - 与Tailwind CSS兼容:Windi CSS是Tailwind CSS的一个替代者,提供了一套与之相似的工具类,使得从Tailwind CSS迁移到Windi CSS相对简单。 6. JavaScript标签的含义: 在资源摘要信息中提到的标签“JavaScript”表明该项目的主要编程语言是JavaScript。这可能意味着项目的前端代码是使用JavaScript编写的,并且可能利用了ES6+的高级特性来增强代码的模块化和功能性。JavaScript标签也表明项目可能使用了JavaScript生态系统中的其他库或框架,如Vue.js、React或Angular,这些框架可以与Vite无缝配合,提升前端开发的效率和体验。 7. 结论: vite_windi_sample这个项目通过结合Vite和Windi CSS的特性,旨在提供一个快速、高效的开发环境,以便开发者能够快速迭代和构建现代的Web应用程序。利用Vite的开发服务器和Windi 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 上传