• Vite 3.x + Vue 3.x + TypeScript 4.x + Element Plus + Pinia 搭建项目


    前言

    学习如逆水行舟,不进则退。

    一、环境准备

    ①、安装 node

    node 官网下载地址:下载 | Node.js 中文网

    安装过程很简单,基本一键 next 到底就行。安装之后使用 node -v 查看当前版本。

    注意:本项目使用 Vite 构建工具,需要 Node.js 版本 14.18+,16+。有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。

    Node.js 升级到最新的稳定版本:

    1. # 使用 nvm 安装最新稳定版 Node.js
    2. nvm install stable

    ②、VSCode 安装扩展插件 Volar

    注意:使用 Volar时,需禁用 Vetur

    二、初始化项目

    1. # npm
    2. npm create vite@latest
    3. # yarn
    4. yarn create vite
    5. # pnpm
    6. pnpm create vite

    然后按照终端提示操作,输入项目名称,选择模板,具体如截图所示:

    或者,你还可以通过附加的命令行选项直接指定项目名称和你想要的模板。例如,要构建一个 Vite + Vue 项目,运行:

    1. # npm 6.x
    2. npm create vite@latest my-vue-app --template vue-ts
    3. # npm 7+ (需要额外的双横线)
    4. npm create vite@latest my-vue-app -- --template vue-ts
    5. # yarn
    6. yarn create vite my-vue-app --template vue-ts
    7. # pnpm
    8. pnpm create vite my-vue-app --template vue-ts

     初始化完成后,依次运行如下命令,启动项目。 

    1. cd vite-vue-app
    2. yarn
    3. yarn dev

     浏览器访问 http://127.0.0.1:5173/

     如上图,Vite + Vue3 + TypeScript 简单的项目骨架搭建完毕。

    三、修改 Vite 配置文件

    ①、路径别名配置,使用 @ 代替 src

    a. vite 配置

    关于 Vite 更多配置项及用法,请查看 Vite 官网 Configuring Vite | Vite

    1. // vite.config.ts
    2. import { defineConfig } from 'vite'
    3. import vue from '@vitejs/plugin-vue'
    4. import { resolve } from 'path'
    5. export default defineConfig({
    6. plugins: [vue()],
    7. resolve: {
    8. alias: {
    9. '@': resolve(__dirname, 'src') // 相对路径别名配置,使用 @ 代替 src
    10. }
    11. }
    12. })

    b. 安装 @types/node

    上述 vite.config.ts 文件中,编译器报错:找不到模块“path”或其相应的类型声明。

    安装 Node 的TypeScript 类型描述文件即可解决报错。

    1. # npm
    2. npm install @types/node --save-dev
    3. # yarn
    4. yarn add @types/node --dev

     c.  TypeScript 编译配置

    因为 TypeScript 特殊的 import 方式,需要配置允许默认导入的方式,还有路径别名的配置。

    1. // tsconfig.json
    2. {
    3. "compilerOptions": {
    4. "target": "ESNext",
    5. "useDefineForClassFields": true,
    6. "module": "ESNext",
    7. "moduleResolution": "Node",
    8. "strict": true,
    9. "jsx": "preserve",
    10. "sourceMap": true,
    11. "resolveJsonModule": true,
    12. "isolatedModules": true,
    13. "esModuleInterop": true,
    14. "lib": ["ESNext", "DOM"],
    15. "skipLibCheck": true,
    16. "baseUrl": "./", // 解析非相对模块的基地址,默认是当前目录
    17. "paths": { //路径映射,相对于baseUrl
    18. "@/*": ["src/*"]
    19. },
    20. "allowSyntheticDefaultImports": true // 允许默认导入
    21. },
    22. "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
    23. "references": [{ "path": "./tsconfig.node.json" }]
    24. }

    d. 别名使用

    1. // App.vue
    2. import HelloWorld from './components/HelloWorld.vue'
    3. // 改为:
    4. import HelloWorld from '@/components/HelloWorld.vue'

    ②、服务启动端口

    
                    
  • 相关阅读:
    TCP Westwood 更新(性能牛逼 )
    【https】lighttpd增加https支持及openssl生成CA(Certificate Authority)和使用CA来制作签名证书操作说明
    2021年雄安新区发展研究报告
    《俞军产品方法论》笔记心得 01
    Mvc、Mvp和Mvvm
    javaweb
    P2308 添加括号,区间dp,dfs过程展示
    C++前缀和算法:构造乘积矩阵
    LeetCode1493. 删掉一个元素以后全为 1 的最长子数组
    云主机适合哪些人使用?
  • 原文地址:https://blog.csdn.net/lhz_333/article/details/125367315