vue3+ts+vite創建的后臺管理系統筆記

Vue3+ Vite + Element-Plus + TypeScript 從0到1搭建企業級后臺管理系統(前后端開源):參考有來科技學習搭建項目

  • 創建項目
  • bug匯總,知識點
    • src 路徑別名配置和tsconfig.json文件報錯【這個不配置好,會引起其他頁面引用時報錯:見--整合 Pinia】:
    • 整合 Pinia 【參考-- src 路徑別名配置和tsconfig.json文件報錯】
    • 整合 Axios
    • 新建的文件或者安裝的包,文件引用有報錯,關閉vscode,重啟下即可。
    • 報錯Cannot find name 'ElMessage'.ts(2304)
    • vue3的路由中如何使用transition;Transition + Component實現路由跳轉淺入淺出效果
    • vue-route路由meta對象參數說明
    • ts中的?、??、!、!!
    • defineOptions
    • 代碼統一規范:(https://blog.csdn.net/u013737132/article/details/145608723)
    • 創建項目的過程用npm,都配好后(包括代碼規范配置,npm i 安裝依賴),之后可以改為pnpm,不然過程中可能有bug![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/d70584ba276f4d029d3038beb95c888c.png)
    • 配置 prettier:保存自動格式化
    • 配置代碼規范后:瀏覽器不自動打開,pnpm強制使用失效情況
    • 項目一開始就要確定用npm 還是pnpm,后續來回切換可能會有報錯。
    • 報錯:the teiminal process 'xxx'terminated with exit code:2
    • 啟動項目不能自動打開瀏覽器
    • vue/react項目npm遷移pnpm,同時兼容npm
    • Property ‘xxx‘ does not exist on type {}問題解決方法
    • const提示報錯:Definitions of the following identifiers conflict with those in another file:xxx:Conflicts are in this file.
    • 啟動后有報錯:Uncaught ReferenceError: __APP_INFO__ is not defined
    • Property 'xxx' does not exist on type 'never'.
    • 提交代碼時報錯
    • 高德地圖報錯 AMap.Geocoder is not a construct:看下面模塊【地圖插件的引入有兩種】
    • 地圖插件的引入有兩種:
    • 定位時報錯:Get ipLocation failed.Get geolocation timeout.
    • 高德地圖定位報錯,用其他方法代替即可:
    • vue3項目本地開啟https協議訪問(vite)
    • 前端實現下載圖片:html2canvas、html-to-image
    • 相比之前版本去掉了
    • 未完待續······

參考:
項目詳細文檔:
稀土挖金:https://juejin.cn/post/7228990409909108793#heading-1
csdn: https://blog.csdn.net/u013737132/article/details/130191394
vite文檔:
https://cn.vitejs.dev/guide/#scaffolding-your-first-vite-project
gitee項目源碼:
https://gitee.com/youlaiorg/vue3-element-admin

版本信息:
node: v20.18.0
npm: 10.8.2
pnpm: v10.8.0
在這里插入圖片描述

創建項目

npm init vite@latest power_front --template vue-ts
在這里插入圖片描述
生成的項目目錄:

在這里插入圖片描述

package.json文件:

{"name": "power_front","private": true,"version": "0.0.0","type": "module","scripts": {"dev": "vite","build": "vue-tsc -b && vite build","preview": "vite preview"},"dependencies": {"vue": "^3.5.13"},"devDependencies": {"@vitejs/plugin-vue": "^5.2.1","@vue/tsconfig": "^0.7.0","typescript": "~5.7.2","vite": "^6.2.0","vue-tsc": "^2.2.4"}
}

文件創建時tsconfig.json原始內容:

參考配置:
https://blog.csdn.net/qq_45954390/article/details/142780564
https://blog.csdn.net/qq_45954390/article/details/144606262

其他可參考的博客:
https://juejin.cn/post/7418530380194201626
https://www.cnblogs.com/zhouxiaobai/p/17564807.html
https://blog.csdn.net/azl397985856/article/details/108090980
https://blog.csdn.net/s178435865/article/details/131417356
https://blog.csdn.net/2301_79568124/article/details/137783628

{"files": [],//指定待編譯文件"references": [{ "path": "./tsconfig.app.json" },{ "path": "./tsconfig.node.json" }]
}references 屬性作用是指定工程引用依賴。
在項目開發中,有時候我們為了方便將前端項目和后端node項目放在同一個目錄下開發,兩個項目依賴同一個配置文件和通用文件,但我們希望前后端項目進行靈活的分別打包,那么我們可以進行如下配置:files 屬性作用是指定需要編譯的單個文件列表。
默認包含當前目錄和子目錄下所有 TypeScript 文件參考:https://blog.csdn.net/azl397985856/article/details/108090980

bug匯總,知識點

src 路徑別名配置和tsconfig.json文件報錯【這個不配置好,會引起其他頁面引用時報錯:見–整合 Pinia】:

配置路徑別名時,引入組件報錯:cannot find module ‘’ or its corresponding type declarations
但可以正常渲染,跟tsconfig.json報錯一塊解決。

在這里插入圖片描述
tsconfig.json有報錯
問題:按照有來項目的的tsconfig.json配置,tsconfig.json中對tsconfig.app.json和tsconfig.app.json引用有報錯。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
解決方法參考:https://blog.csdn.net/qq_40244755/article/details/146768391
在tsconfig.app.json和tsconfig.app.json文件中,分別添加"composite": true并確保沒有設置"noEmit": true:

三個文件的詳細配置如下:

tsconfig.json文件配置

//默認的配置
// {
//   "files": [],//明確列出要編譯的文件
//   "references": [//項目引用,是 TS 3.0 中的一項新功能,它允許將 TS 程序組織成更小的部分。使用小技巧:在填寫路徑時 ** 表示任意目錄, * 表示任意文件。
//     { "path": "./tsconfig.app.json" },
//     { "path": "./tsconfig.node.json" }
//   ],
// }//有來科技和【https://blog.csdn.net/qq_45954390/article/details/144606262】、【https://blog.csdn.net/qq_45954390/article/details/142780564】
{"compilerOptions": {"target": "esnext", // 目標語言的版本"module": "esnext",// 指定生成代碼的模板標準"moduleResolution": "node", // 模塊解析策略,ts默認用node的解析策略,即相對的方式導入"lib": ["esnext", "dom"],// 編譯時引入的 ES 功能庫,包括:es5 、es6、es7、dom 等。// 如果未設置,則默認為: target 為 es5"baseUrl": ".", // 模塊解析根路徑,默認為 tsconfig.json 位于的目錄"paths": {// 路徑映射,相對于baseUrl"@/*": ["src/*"]},// 嚴格性和類型檢查相關配置"strict": true,// 開啟所有嚴格的類型檢查"skipLibCheck": true,// 是否跳過聲明文件的類型檢查,這可以在編譯期間以犧牲類型系統準確性為代價來節省時間,默認:false"forceConsistentCasingInFileNames": true,// 是否區分文件系統大小寫規則// 模塊和兼容性相關配置"allowSyntheticDefaultImports": true,//允許從那些使用 CommonJS(require)導出模塊的庫中導入默認導出(default exports)"esModuleInterop": true,// 允許export=導出,由import from 導入 【解決了在 TypeScript 中使用 CommonJS 模塊和 ECMAScript 模塊相互兼容的一些問題】"resolveJsonModule": true,//是否解析 JSON 模塊// 調試和兼容性相關配置"sourceMap": true,// 生成目標文件的sourceMap文件"useDefineForClassFields": true,// useDefineForClassFields 為 true 時,TypeScript 編譯器會生成符合 ECMAScript 標準的類字段。useDefineForClassFields 有利于我們平滑地升級 TypeScript 。"allowJs": true, // 允許編譯器編譯JS,JSX文件// 類型聲明相關配置// "types": ["node", "vite/client", "element-plus/global"]"types": ["node", "vite/client",],// 加載的聲明文件包// "composite":true,// 是否編譯構建引用項目},// 指定需要被編譯的TypeScript文件和需要被排除的文件// 指定要編譯的文件或目錄"include": ["mock/**/*.ts", "src/**/*.ts", "src/**/*.vue", "vite.config.ts"],//如果不指定include屬性,?則默認當前目錄下除了exclude之外的所有.ts、?.d.ts、?.tsx文件都會被編譯。?// 指定不需要編譯的文件或目錄"exclude": ["node_modules", "dist"],// "composite":true,// 是否編譯構建引用項目//用于指定項目之間的引用關系,當前項目的 tsconfig.json 文件引用了位于相對路徑 "./tsconfig.node.json" 的另一個 TypeScript 配置文件"references": [{ "path": "./tsconfig.app.json" },{ "path": "./tsconfig.node.json" }], 
}

tsconfig.app.json配置:

// {
//   "extends": "@vue/tsconfig/tsconfig.dom.json",
//   "compilerOptions": {
//     "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",//     /* Linting */
//     "strict": true,
//     "noUnusedLocals": true,
//     "noUnusedParameters": true,
//     "noFallthroughCasesInSwitch": true,
//     "noUncheckedSideEffectImports": true,//     "noImplicitAny": false,//     "emitDeclarationOnly": true,// 僅生成聲明文件,不編譯輸出如 JS 文件。√
//     "composite": true,  // 與 TypeScript 項目可以進行增量構建有關 √
//     "noEmit": false //是否不生成編譯后的js文件,默認值是false,即生成 【確保沒有 "noEmit": true】 √
//   },
//   "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
// }// 按照 https://juejin.cn/post/7418530380194201626 配置的{"extends": "./tsconfig.json", // 繼承主配置文件"compilerOptions": {// "emitDeclarationOnly": true,// 僅生成聲明文件,不編譯輸出如 JS 文件。√"composite": true,  // 與 TypeScript 項目可以進行增量構建有關 √

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84679.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84679.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84679.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

指針01 day13

十三:指針變量 一:數據類型 ? 指針類型---------對應處理的數據是指針 (地址)這種數據 ? 整型類型---------對應處理的數據是整數這種類型 二:定義指針類型的變量 ? 語法: 基類型(1) *(…

基于深度學習的智能文本生成:從模型到應用

前言 隨著人工智能技術的飛速發展,自然語言處理(NLP)領域取得了顯著的進展。其中,智能文本生成技術尤其引人注目。從聊天機器人到內容創作,智能文本生成不僅能夠提高效率,還能創造出令人驚嘆的內容。本文將…

Oracle業務用戶的存儲過程個數及行數統計

Oracle業務用戶的存儲過程個數及行數統計 統計所有業務用戶存儲過程的個數獨立定義的存儲過程定義在包里的存儲過程統計所有業務用戶存儲過程的總行數獨立定義的存儲過程定義在包里的存儲過程通過DBA_SOURCE統計類型個數和代碼行數?? 對存儲過程進行統計主要用到以下三個系統…

多線程安全:核心解決方案全解析

在多線程環境下保證共享變量的線程安全,需解決原子性、可見性、有序性三大問題。以下是核心解決方案及適用場景: 一、同步鎖機制(互斥訪問) synchronized 關鍵字 原理:通過 JVM 監視器鎖(Monitor)確保同一時間僅一個線程訪問臨界區。示例:public class Counter {privat…

2025-06-01-Hive 技術及應用介紹

Hive 技術及應用介紹 參考資料 Hive 技術原理Hive 架構及應用介紹Hive - 小海哥哥 de - 博客園https://cwiki.apache.org/confluence/display/Hive/Home(官方文檔) Apache Hive 是基于 Hadoop 構建的數據倉庫工具,它為海量結構化數據提供類 SQL 的查詢能力&#xf…

Python爬蟲(52)Scrapy-Redis分布式爬蟲架構實戰:IP代理池深度集成與跨地域數據采集

目錄 一、引言:當爬蟲遭遇"地域封鎖"二、背景解析:分布式爬蟲的兩大技術挑戰1. 傳統Scrapy架構的局限性2. 地域限制的三種典型表現 三、架構設計:Scrapy-Redis 代理池的協同機制1. 分布式架構拓撲圖2. 核心組件協同流程 四、技術實…

HashMap真面目

背景 今天數據采集項目碰到一個性能問題,3000多個采集點,每一個采集點每秒送一個數據,接收到數據之后首先需要內存中做緩存,之后有一系列的業務分析處理,所以,對系統性能要求比較高。 最近幾天發現服務器…

STM32CubeMX-H7-19-ESP8266通信(中)--單片機控制ESP8266實現TCP地址通信

前言 上篇文章我們已經能夠使用串口助手實現esp8266的幾種通信,接下來我們使用單片機控制實現。這篇文章會附帶教程,增加.c和,.h,把串口和定時器放到對應的編號,然后調用初始化就可以使用了。 先講解,然后末尾再放源碼…

歐盟RED網絡安全標準EN 18031-2的要求

歐盟RED網絡安全標準EN 18031-2的要求 歐盟RED網絡安全標準EN 18031-2的要求 ? 適用產品范圍: 能夠處理個人隱私數據的可聯網無線電設備。 不具備聯網能力的三類無線電設備:玩具、兒童護理類設備、可穿戴類設備。 主要測試與評估內容: EN…

一起了解--CAST函數

CAST函數在SQL中用途廣泛,不僅可以轉換為數值類型,還可以在多種場景下用于數據類型轉換。以下是一些常見的用途和示例: 類型轉換 使用CAST函數可以在查詢數據庫時根據需要調整數據格式或類型 CAST(expression AS target_type) expression …

(50)課71:查看指定 query_id 的 SQL 語句的執行各個階段的耗時情況 show profile for query query_id;

(137)查看指定 query_id 的 SQL 語句的執行各個階段的耗時情況 show profile for query query_id : (138) 謝謝

AWS中國云的定時任務(AWS EventBridge+AWS Lambda)

問題 最近有一個每天在凌程定時同步數據給第三方系統的需求。需要使用AWS EventBridge和AWS Lambda結合的方式來同步數據給第三方系統。 思路 使用Python的ORM框架(例如:SQLAlchemy)查詢到需要同步的數據,然后,使用http客戶端(…

開源PSS解析器

本章介紹開源PSS解析工具: 1. PSSTools語法解析器,這個工具僅包含一個語法解析器。 2. gen-pss,實現了語法解析器,和簡單的Test realization,沒有約束求解器。 本文將改造并使用gen-pss來生成C測試用例&#xff0…

《linux2.4 內存管理》:第 2 章 描述物理內存

Linux 適用于多種體系結構,需用體系結構無關方式描述內存。本章介紹影響 VM 行為的內存簇、頁面和標志位結構。 非一致內存訪問(NUMA):在 VM 中,大型機器內存分簇,依簇與處理器距離,訪問代價不…

數據湖是什么?數據湖和數據倉庫的區別是什么?

目錄 一、數據湖是什么 (一)數據湖的定義 (二)數據湖的特點 二、數據倉庫是什么 (一)數據倉庫的定義 (二)數據倉庫的特點 三、數據湖和數據倉庫的區別 (一&#…

Smart Form Adobe form

強制更改內表:TNAPR se16-> Smart Form總覽 Smart form 變量格式說明: &symbol& (括號中,小寫字母為變量) &symbol& 屏蔽從第一位開始的N位 &symbol (n)& 只顯示前N位 &symbol (S)& 忽略正負號 &symbol (<)& 符號在…

Linux 內核學習(11) --- Linux 鏈表結構

文章目錄 Linked List 簡介Linked List 操作方法鏈表頭結點初始化創建鏈表節點添加節點到鏈表中從鏈表中刪除節點從鏈表中替換節點移動鏈表中的節點檢查鏈表鏈表遍歷demo 實例 Linked List 簡介 鏈表是一種數據結構&#xff0c;由一系列節點組成&#xff0c;每個節點包含數據部…

一分鐘部署nginx-公網IP訪問內網

前言 服務器內網下有nacos cluster&#xff08;3個節點&#xff09;&#xff0c;開放到公網并指定公司網絡訪問需要配置三次IP白名單&#xff0c;因此需要簡化流程&#xff0c;通過nginx反向代理只配置1次IP白名單。 現在通過docker容器模擬環境&#xff0c;準備1臺云服務器。…

C 語言分支與循環

目錄 一. 分支結構&#xff1a;if 語句與 switch 語句 1. if 語句 2. switch 語句 二、關系操作符、條件操作符與邏輯操作符 1. 關系操作符 2. 條件操作符 3. 邏輯操作符 三、循環結構&#xff1a;while 循環、for 循環與 do - while 循環 1. while 循環 2. for 循…

【一文看懂Spring Boot2.x升級Spring Boot3.x】springboot2.x升級springboot3.x

springboot2.x升級springboot3.x 背景升級jdk版本為17以上springboot版本修改javax包更新mybatis-plus升級swagger升級springdocspringdoc配置背景 當前項目是springboot2.5.9版本的springboot+mybatis-plus項目,需要升級到springboot3.5.0項目。 升級jdk版本為17以上 Spri…