• 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");

  • 相关阅读:
    会议通知和代开会议
    Java复习-多线程编程
    压力串级控制装置用于气动马达的高精度调节
    【CSS】尝试性使用一下css容易混淆的属性选择器
    会议电子桌牌简介
    Windows 10 Enterprise LTSC 2021 (x86) - DVD (Chinese-Simplified)文件分享
    Javascript正则解析出代码的函数体
    从零开始,开发一个 Web Office 套件(10):捕获键盘事件,输入文字
    智慧加油站AI智能视频分析系统
    PrimeTime 工具学习笔记(1)
  • 原文地址:https://blog.csdn.net/weixin_43817724/article/details/125426458