新建一个项目
2025-01-15 10:24 WEB前端小菜鸟 阅读(12) 评论(0) 编辑 收藏 举报
参考:https://www.cnblogs.com/liandudu/p/17559780.html
第一步:
vite官网搭建项目 pnpm create vite或者 yarn create vite--自己选vue 然后js 我不想用ts---然后pnpm install 安依赖 然后pnpm run dev启动搞定
第二步:
pnpm install vue-router --save
新建router文件夹下新建index.ts 书写路由(自己写2个页面) 然后main.ts导入路由并挂载路由
router-view输出
<router-view>: 该标签会根据当前的路径, 动态渲染出不同的组件.
网页的其他内容, 比如顶部的标题/导航, 或者底部的一些版权信息等会和<router-view>处于同一个等级.
在路由切换时, 切换的是<router-view>挂载的组件, 其他内容不会发生改变
import.meta.env.BASE_URL 这个变量,它是由 Vite 提供的环境变量,详见 Vite 官网
使用其他构建工具请自行替换为对应构建工具提供的环境变量,
如使用 @vue/cli 创建的项目因为是基于 Webpack ,所以使用的是 process.env.BASE_URL
但是实际中 vite项目中两者都能打印出来
console.log(process.env.NODE_ENV,'看了看')
console.log(import.meta.env.BASE_URL,'看了看')
更改app.vue 添加路由出口
router/index.js 添加路由信息,然后就可以浏览器上跳转路由了
草塔大爷的,哈希模式不是这个api 是这个 createWebHashHistory,fuck改这个就行了
第3步:清除所有默认的css
先删除这个css
pnpm install normalize.css 然后main.js引入,不好用
虽然它清除了body的默认样式,但是H1的margin它并没有清除,so我还是自己写一个reset.css (喊豆包写一个)搞定这些不光body没得默认margin, h1也没得了
第4步:安装less
pnpm install less-loader less --save-dev
第5步:安装element-plus,且按需引入,且按需引入图标【看官网】
@1全部引入,打包1.21M--如图
@2按需引入:pnpm install -D unplugin-vue-components unplugin-auto-import ,打包176 KB ,我操尼玛 比1.21M小太多了,按需引入还是香啊
main.js注释掉这2个,按需引入不需要这3个
按需引入 vite.config.js配置(copy官网)
AutoImport
插件【这里有个问题,我定义变量的时候认不到ref】
解决方案:
vite.config.js中加上这句话
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), AutoImport({ // 确保导入 Vue 3 的组合式 API,如ref等 imports: [ 'vue' ], resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], }) |
实测OK,如图
pnpm install @element-plus/icons-vue
如果要使用中文(虽然它默认中文),就要引入element-plus,亲测打包后跟完全引入打包后大小差不多了,但是页面上不用一个个引入了,因为配置了按需引入,只是打包大小差不多而已,就这样把,万一以后它要国际版呢,到时候替换一波就行了(把zhCn替换成引文)
第6步:配置路径别名(延伸一下:多别名配置)
vite.config.js配置 搞定
延伸一下:多别名配置,还是挺不错的
1 2 3 4 5 6 7 8 9 | resolve: { alias: { '@' : path.resolve(__dirname, 'src' ), '@components' : path.resolve(__dirname, 'src/components' ), '@views' : path.resolve(__dirname, 'src/views' ), '@assets' : path.resolve(__dirname, 'src/assets' ), } } |
第7步:配置px转化为vw的(保证浏览器放大缩小样式错乱的问题)
pnpm install postcss-px-to-viewport postcss-loader autoprefixer --save-dev
然后配置vite.config.js---搞定
但是本插件无法转化style内联样式:尽量避免使用内联样式,因为 postcss-px-to-viewport
主要针对 CSS 文件或 <style>
标签中的样式。例如,将内联样式改为 <style>
标签:
第8步:配置pinia
第9步:配置axios
pnpm install axios
pnpm install qs 序列化--针对不同的Content-Type类型 -处理数据(
)
如何动态配置
Content-Type
1 2 3 4 | # API 基础地址 VITE_APP_BASE_URL=http: //localhost:3000/api # API 超时时间(毫秒) VITE_APP_API_TIMEOUT=5000 |
ReferenceError: process is not defined
报错时,通常是因为 Vite 默认使用 ES 模块标准,而 process
是 Node.js 环境中的全局对象,在浏览器环境中不存在。// 正确使用 Vite 的环境变量
import.meta.env.VITE_API_URL 搞定 【
】
解决方案是使用proviede inject替代globalProperties
在使用的组件里面接收这个实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // 接收axios实例const fetchData = async () => { try { // 发送 Post 请求 let params = { dateId: "" , typeId: null , }; const resData = await $api.post(userModels.loginUrl, params ); console.log(resData, "打印一下呢" ); } catch (err) { console.log( "error" ); } finally { console.log( "最终" ); } }; |
就可以调用接口了,然后报错跨域的问题。
明明我已经改了跨域设置:它还是报跨域,原来
原来这个也要改成本地地址才能代理到目标地址,搞定
npm run build
时,Vite 会加载 .env.production
文件中的环境变量.env.test
),可以在 package.json
中添加自定义脚本 "build:test": "vite build --mode test"
第10步:配置eslint
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix