• vue3+vite+ts项目初建(仅个人习惯)


    因为是搭完再写的文章,如果漏了模块没有安装的,请自己安装一下。莫怪

    vite构建项目:cnpm i vite-app 项目名称(选择了ts、vue3)。

    安装路由:cnpm i vue-router。

    安装element-plus:cnpm i element-plus -D

    安装按需引入element:npm install -D unplugin-vue-components unplugin-auto-import

    安装path模块:cnpm i @types/node -D

    根目录新建router文件夹,

    配置index.ts文件

    1. import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
    2. import Home from './Home';
    3. const routes:Array<RouteRecordRaw> = [...Home];
    4. const router = createRouter({
    5. history:createWebHistory(),
    6. routes
    7. })
    8. export default router;

    在Home文件夹创建index.ts文件。配置

    1. const home = [
    2. {
    3. path:'/',
    4. redirect:'/home'
    5. },
    6. {
    7. path:'/home',
    8. component:()=>import('@/views/Home.vue'),
    9. }
    10. ]
    11. export default home

    此处使用到了别名@,需要配置tsconfig.json和vite.config.ts。

    tsconfig.json配置添加

    1. "baseUrl": ".",
    2. "paths": {
    3. "@/*":["src/*"]
    4. }
    5. },
    6. "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
    7. "exclude": ["node_modules"],

    vite.config.ts各项配置如下。

    1. import vue from "@vitejs/plugin-vue";
    2. import AutoImport from "unplugin-auto-import/vite";
    3. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
    4. import Components from "unplugin-vue-components/vite";
    5. import { defineConfig, loadEnv } from "vite";
    6. const path = require('path')
    7. // https://vitejs.dev/config/
    8. export default defineConfig(({ mode }) => {
    9. //环境判断
    10. const serveUrl: string = loadEnv(mode, process.cwd()).VITE_HOST;
    11. const servePort: number = Number(loadEnv(mode, process.cwd()).VITE_PORT);
    12. console.log(loadEnv(mode, process.cwd()), "环境配置");
    13. return {
    14. //包管理
    15. plugins: [
    16. vue(),
    17. //按需引入element-plus
    18. AutoImport({
    19. resolvers: [ElementPlusResolver()],
    20. }),
    21. Components({
    22. resolvers: [ElementPlusResolver()],
    23. }),
    24. ],
    25. //别名
    26. resolve: {
    27. alias: {
    28. "@": path.resolve(__dirname, "src"),
    29. },
    30. },
    31. //服务
    32. server: {
    33. open: true,
    34. host: "0.0.0.0",
    35. port: servePort,
    36. //代理
    37. proxy: {
    38. "/api": {
    39. target: "http://baidu.com",
    40. ws: true,
    41. changeOrigin: true,
    42. pathRewrite: {
    43. "^/api": "/",
    44. },
    45. },
    46. },
    47. },
    48. };
    49. });

    如果配置完到了页面上使用@引入文件时报错,Cannot find module ‘xxx‘ or its corresponding type declarations.Vetur

    关掉vscode,把项目放到根目录用vscode重新打开,则不会再报这个错。

    添加.env、.env.development、.env.production文件。配置可如下

    1. VITE_MODE = 'env'
    2. VITE_HOST = /api
    3. VITE_PORT = 8899

    main.ts配置如下

    1. import router from '@/router/index';
    2. import * as ElementPlusIconsVue from "@element-plus/icons-vue";
    3. import { createApp } from "vue";
    4. import App from "./App.vue";
    5. const app = createApp(App);
    6. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    7. app.component(key, component);
    8. }
    9. app.use(router)
    10. app.mount("#app");

  • 相关阅读:
    通过商品ID获取到京东商品详情页面数据,京东商品详情官方开放平台API接口,京东APP详情接口,可以拿到sku价格,销售价演示案例
    激活企业数字化采购价值,智慧采购管理系统助力半导体行业提升采购协同效率
    mac for m1(arm):安装redis的四种方式(本机安装、homebrew安装、虚拟机安装、docker安装)
    数仓SQL相关的场景解法
    10、Redis分布式系统之数据分区算法
    matplotlib笔记
    嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)
    CRMEB商城源码开源标准版v5.2.0+后端+前端uni-app开源包安装教程
    c++实现观察者模式
    基于verilog的CRC校验(汇总)
  • 原文地址:https://blog.csdn.net/weixin_43817724/article/details/125426458