公司后台管理系统搭建(Vue3+Vite+Element Plus+TypeScript+Pinia)

2023-11-20

前言

此次项目搭建选用 Vue3+Vite,并使用 pnpm 管理依赖包,本文将从下载到项目创建记录项目全过程。

一、项目搭建

1、使用 npm 下载 pnpm ,使用 pnpm,依赖包将被存放在一个统一的位置,因此可以节省大量的硬盘空间以及提高安装速度。

npm install -g pnpm

(Tips:mac 需前面加上 sudo) 

sudo npm install -g pnpm

2、使用 vite 创建项目,以前都是用 webpack、vue-cli等打包工具,但是项目量级变大之后的打包速度不尽人意,因此选用 vite 大幅提升了开发服务器启动时间。

pnpm create vite

后续跟随步骤选择 vue3 和 ts 即可。

3、项目创建完毕,打开项目试运行。

cd projectName

pnpm install

pnpm run dev

4、引入插件 element-plus ,选用 element-plus 作为页面主题 UI 是因为其简洁优雅的界面样式及用户体验回馈。项目使用官方推荐的自动导入所需插件,步骤如下:

1)安装 element-plus

pnpm install element-plus

2)安装unplugin-vue-components 和 unplugin-auto-import这两款插件

pnpm install -D unplugin-vue-components unplugin-auto-import

3)然后把下列代码插入到你的 Vite 的配置文件中

// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})

(Tips:饿了么官方框架模板,可作参考,点击预览项目效果

5、项目选用 less 作为 css 扩展语言

pnpm install less less-loader --save-dev

6、下载 VueUse 插件库,很好用,不懂 vue 的 YYX 也有推荐,后续的网页开灯关灯效果也有用到。

pnpm i @vueuse/core

pnpm i @vueuse/components

7、安装 axios ,发送网络请求

pnpm install axios

8、安装 vue-router ,路由

pnpm install vue-router --save

9、安装 pinia ,与 vuex 相比最大特点可能就是少了 mutations ,这是一个很棒的改变,省去了很多冗长的操作。

pnpm install pinia

至此一个 vue3 + vite 的项目就初步搭建完毕。 

(Tips:可在 package.json 中加上 --open 让项目可在打包后自动打开网页)

以下为项目后续文章,此项目将持续更新至完结:

二、公司后台管理系统:项目结构整理

三、后台管理系统页面布局基本结构

四、Pinia 的安装及其基本使用 

前端小技巧(solve)

前端 VSCode 常用插件库

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

公司后台管理系统搭建(Vue3+Vite+Element Plus+TypeScript+Pinia) 的相关文章

  • { ...obj1, obj2 } 到底做什么[重复]

    这个问题在这里已经有答案了 假设我们有两个对象 const state fishes some obj data animals some obj data const animals some NEW data 在Vuex中有一个方法re
  • 在 Angular 2+ 中进行 DOM 操作的正确方法

    我知道有一些类似的问题 但没有人回答我的问题 基本上 以角度方式操作 DOM 的正确方法是什么 比如说我有这个 html
  • TypeScript:将模块拆分为多个文件

    我想将同一模块中的类定义拆分为多个文件 所以我确实喜欢这个并且它有效 a ts module MyModule class ClassA b ts module My Module class ClassB 然后我尝试在 ClassB 中使
  • TS1128:预期声明或声明(文件结尾)

    我正在开发一个 TypeScript React 项目 刚刚习惯它 已经一年没有写过 React 了 等等 并且遇到了一个问题 当我编写此组件时 我遵循了我找到的一些文档 但我在此文件末尾收到 TS1128 预期声明或声明 错误 我无法弄清
  • npm run dev 和 npm run production 之间的区别

    我对 Laravel 和 vue js 很陌生 请让我知道它们之间有什么区别npm run dev and npm run production 这和环境有关系吗 npm run dev创建源映射并且不会缩小 js css 这使得调试和查找
  • Angular 6 http.delete 请求不起作用

    我似乎无法让我的删除请求发挥作用 我已经完成了所有的获取请求 但现在我被困在删除上 似乎无法理解它 console log 的 URL 始终正确 并且删除请求通过 Postman 工作正常 有什么想法吗 HTML
  • Node.js 10 的 TypeScript tsconfig 设置?

    有谁知道 Node js v10 x 需要哪些目标 库才能在没有生成器的情况下使用内置的 async await 我看到很多关于节点 8 的信息 但没有看到关于节点 10 的信息 从 Node js 开始10 0 0 100 支持ES201
  • 从版本 14 更新到 15 后,Angular $localize 错误

    从版本更新我们的 Angular 应用程序后14 0 4到版本15 1 3 之前也尝试过15 1 2 我们在尝试访问该应用程序时收到以下错误 Uncaught Error It looks like your application or
  • vue如何检测页面是否刷新?

    我尝试这样 created window addEventListener beforeunload function event event returnValue Write something this router push 像这样
  • QUnit 不会运行测试

    我刚刚开始使用 QUnit 并遇到问题 我目前正在使用 TypeScript 它是一个 JavaScript 编译器 我在与我的主要课程结构平行的课程中进行测试 在每个类中 我都有一个名为 runTests 的函数 为了执行这些测试 我循环
  • 如何为 Angular 4、5 中的动态元素分配哈希 ID ref id

    如果我的问题很愚蠢 我很抱歉 我有 30 多个静态 ng container 和一些独特的静态 hashtagID 但我想在 ngFor 的帮助下动态创建它们 public lists food book cook 期望输出
  • 如何将 Jitsi Meet 添加到 Vuejs

    我已在 public html 的正文中加载了 jitsi meet 脚本 并且我有一个组件 如下所示
  • 如何强制泛型

    有没有办法在打字稿中将泛型标记为强制 function onSubmit
  • 打字稿 - 找不到导出

    我在模块 A 中有这个 Typescript 文件 somefile tsx import remAuto from tidee life theme 在模块 B 中 我导出了 index js 文件remAuto index js imp
  • Mapbox JS SDK CSS样式表导致地图消失

    我在 VueJS 应用程序中使用 Mapbox JavaScript SDK 我可以毫无问题地显示地图 现在我想添加一些标记 我懂了在本页 https docs mapbox com mapbox gl js api 您需要先导入 CSS
  • 如何使用 TypeScript API 将 tsconfig.json 编译为配置对象?

    我正在寻找一个公共官方 TypeScript API 最好是 4 x 版本 用于解析tsconfig json jsconfig json文件到完整的 TypeScript 配置对象 我所说的 完整 是指 它的所有属性都填充有值 要么显式地
  • Svelte:无法识别导入的 TypeScript 文件

    我正在尝试使用 Rollup 使用 Svelte 和 TypeScript 构建一个应用程序 当我尝试构建我的 Svelte 组件时 我似乎无法让它编译我的 ts包含的文件 svelte成分 我不断收到此错误 Error Unexpecte
  • 角度2中未定义的值

    我正在创建一个应用程序 在其中使用 Ag Grid api 在网页上列出我的数据库内容 Ag grid 有一个预定义的 api 来获取所选行的内容 这是我的代码 export class customer entryComponent pu
  • 单击上一页的按钮路由到该页面后如何刷新页面

    我有 2 个页面 一个主页和一个页面 2 当我单击主页上的按钮时 它会路由到 page2 现在 单击主页上的按钮后 当我到达第 2 页时 它应该刷新 因为我的项目中存在一些缓存问题 我在ngoninit上添加了window location
  • 如何在 Angular @Input 中仅接受预定义值

    我的问题是 我在 a 中收到一个字符串值作为组件的参数 但我想限制可以用作参数的值 就像enum I use Input type string 但是在组件中 一切都可以引入type正如我之前所说 我需要将其限制为 3 个选项 例如Enum

随机推荐