Vue 3 + TypeScript:package.json 示例 / 詳細注釋說明

一、示例 / 詳細注釋說明

{// 項目基礎信息"name": "vite-project", // 項目名稱(建議使用 kebab-case 格式)"private": true,        // 標記為私有項目,避免意外發布到 npm"version": "1.0.0",     // 項目版本(遵循語義化版本規范)"type": "module",       // 聲明使用 ES Modules(ESM)規范"description": "Vue 3 + TypeScript starter template", // 項目描述"keywords": [           // npm 搜索關鍵詞"vue3","typescript","vite","starter-template","general","config"],// 腳本命令(通過 `yarn run <script>` 或 `npm run <script>` 執行)"scripts": {"tsc": "vue-tsc -b",                     // 類型檢查(Vue + TypeScript)"dev": "vite --mode dev",                // 啟動開發服務器(指定 dev 環境)"test": "vite --mode test",              // 測試環境啟動"uat": "vite --mode uat",                // UAT(用戶驗收測試)環境啟動"pre": "vite --mode pre",                // 預發布環境啟動"production": "vite --mode production",  // 生產環境啟動"build": "yarn tsc && vite build",       // 構建生產包(先類型檢查再構建)"preview": "vite preview",               // 本地預覽生產構建結果"prepare": "husky",                      // 安裝 husky 鉤子(通常用于 Git 鉤子)"format": "prettier --write \"./**/*.{js,jsx,ts,tsx,css,scss,json,md}\"", // 格式化代碼"build-storybook": "cd ./m-general && yarn build-storybook && cd ../",   // 構建 Storybook"subm": "node sub-scripts.js",           // 自定義腳本(如子模塊操作)"postsubm": "cd ./m-general && (pnpm install || yarn install) && cd ../", // subm 后的操作"storybook": "cd ./m-general && yarn storybook && cd ../" // 啟動 Storybook},// 項目依賴(運行時需要的包)"dependencies": {"@element-plus/icons-vue": "^2.3.2", // Element Plus 圖標庫"@types/qrcode": "^1.5.5",          // QRCode 類型定義(通常應放在 devDependencies)"axios": "^1.11.0",                 // HTTP 客戶端"dayjs": "^1.11.13",                // 輕量級日期處理庫"element-plus": "^2.10.6",          // Vue 3 UI 組件庫"js-cookie": "^3.0.5",              // Cookie 操作工具"js-md5": "^0.8.3",                 // MD5 加密"lodash-es": "^4.17.21",            // 工具庫(ESM 版本)"pinia": "^3.0.2",                  // Vue 狀態管理"pinia-plugin-persistedstate": "^4.5.0", // Pinia 持久化插件"qrcode": "^1.5.4",                 // QR 碼生成(生產依賴正確)"vue": "^3.5.13",                   // Vue 3 核心庫"vue-cropper": "^1.1.4",            // 圖片裁剪組件"vue-global-api": "^0.4.1",         // 全局 API 擴展(如 $filters)"vue-router": "^4.5.1",             // Vue 官方路由"vue-ueditor-wrap": "^3.0.8"        // UEditor 封裝(注意:非官方維護)},// 開發依賴(僅開發環境需要的包)"devDependencies": {"@commitlint/cli": "^19.8.1",               // Git 提交信息校驗"@commitlint/config-conventional": "^19.8.1", // 常規提交規范"@types/js-cookie": "^3.0.6",               // js-cookie 類型定義"@types/js-md5": "^0.8.0",                  // js-md5 類型定義"@types/lodash-es": "^4.17.12",             // lodash-es 類型定義"@types/node": "^24.2.1",                   // Node.js 類型定義"@vitejs/plugin-vue": "^5.2.4",             // Vite 的 Vue 插件"@vitejs/plugin-vue-jsx": "^4.2.0",         // Vite 的 Vue JSX 支持"@vitest/browser": "^3.2.2",                // Vitest 瀏覽器測試"@vitest/coverage-v8": "^3.2.2",            // Vitest 覆蓋率報告"@vue/tsconfig": "^0.7.0",                  // Vue 官方 TS 配置模板"commitlint": "^19.8.1",                    // Commitlint 核心(已包含在 cli 中,可移除)"husky": "^9.1.4",                          // Git 鉤子工具"lint-staged": "^16.1.5",                   // 預提交代碼檢查"playwright": "^1.54.2",                    // E2E 測試框架"pnpm": "^10.14.0",                         // pnpm 包管理器(通常不需要聲明)"prettier": "^3.5.3",                       // 代碼格式化工具"sass-embedded": "^1.90.0",                 // Dart Sass 嵌入式版本(性能更好)"shelljs": "^0.10.0",                       // Node.js Shell 工具(用于腳本)"stylelint-config-recommended-scss": "^16.0.0", // SCSS 推薦規則"stylelint-config-standard": "^39.0.0",     // CSS 標準規則"stylelint-scss": "^6.12.0",                // SCSS 語法支持"terser": "^5.40.0",                        // JS 壓縮工具(Vite 默認已集成)"typescript": "~5.9.2",                     // TypeScript(建議固定次要版本)"vite": "^7.1.2",                           // Vite 構建工具"vite-plugin-checker": "^0.10.2",           // 開發時類型/語法檢查"vite-plugin-vue-setup-extend": "^0.4.0",   // 擴展 Vue 的 setup 語法糖"vitest": "^3.2.2",                         // Vite 測試框架"vue-tsc": "^3.0.5"                         // Vue 的 TypeScript 編譯器},// Husky 配置(Git 鉤子)"husky": {"hooks": {"pre-commit": "lint-staged",      // 提交前執行 lint-staged"commit-msg": "commitlint -E HUSKY_GIT_PARAMS" // 提交信息校驗}},// Lint-staged 配置(僅對暫存區文件執行檢查)"lint-staged": {"*.{js,jsx,ts,tsx,css,scss,json,md,yaml,yml}": ["prettier --write" // 格式化],"*.{css,scss,less}": ["stylelint --fix" // 修復 CSS 問題]},// PNPM 特定配置(避免安裝某些依賴)"pnpm": {"ignoredBuiltDependencies": ["@parcel/watcher", // 忽略原生模塊(可能因平臺不兼容導致問題)"esbuild",         // Vite 內部使用,無需重復安裝"vue-demi"         // 兼容 Vue 2/3 的庫(通常不需要顯式安裝)]},// 瀏覽器兼容性配置(Babel/Autoprefixer 使用)"browserslist": ["> 0.5%",        // 全球使用率 > 0.5% 的瀏覽器"last 2 versions", // 每個瀏覽器的最近兩個版本"not dead",      // 排除已停止維護的瀏覽器"not ie <= 11"   // 排除 IE 11 及以下版本]
}

二、過程記錄

2.1、實際JSON文件中不允許有注釋

2.2、browserslist

Browserslist

2.2.1、現代項目(支持最新瀏覽器,放棄舊版)

// package.json
{"browserslist": ["last 2 Chrome versions","last 2 Firefox versions","last 2 Safari versions","last 2 Edge versions","not dead"  // 排除已停止維護的瀏覽器(如 IE 10及以下)]
}

2.2.2、主流兼容項目(覆蓋大部分用戶)

{"browserslist": ["> 0.5%",          // 全球使用率 > 0.5% 的瀏覽器"last 2 versions",  // 每個瀏覽器的最近兩個版本"not dead",        // 排除已停止維護的瀏覽器"not ie <= 11"     // 顯式排除 IE 11(可選)]
}

2.2.3、兼容舊版瀏覽器(包括 IE 11)

{"browserslist": ["> 0.5%","last 2 versions","not dead","IE 11"  // 顯式包含 IE 11]
}

2.2.4、更嚴格的版本(如需支持企業內網舊瀏覽器)

{"browserslist": ["defaults",          // 等同于 "> 0.5%, last 2 versions, not dead""IE 10-11",         // 包含 IE 10 和 11"Firefox ESR",      // 包含 Firefox 擴展支持版本(企業常用)"not < 0.25%"       // 排除使用率極低的瀏覽器]
}

2.2.5、優先移動端瀏覽器 /?H5 / 小程序

{"browserslist": ["iOS >= 10",       // 覆蓋大部分 iPhone"Android >= 5",    // 覆蓋 Android 5+(Chrome 60+)"not dead"]
}

2.2.6、僅需兼容 Node.js 運行時

{"browserslist": ["node 16",  // 根據項目實際 Node 版本調整"node 18"]
}

2.2.7、環境區分(開發/生產)

{"browserslist": {"production": ["> 0.2%","not dead","not op_mini all"],"development": ["last 1 Chrome version",  // 開發時僅支持最新 Chrome"last 1 Firefox version"]}
}

2.2.8、排除特定瀏覽器

{"browserslist": ["> 1%","not IE 11",       // 排除 IE 11"not Samsung 4"   // 排除三星舊版瀏覽器(如 Galaxy S4 內置瀏覽器)]
}

2.2.9、查看生效的瀏覽器列表

npx browserslist

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

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

相關文章

SpatialVLM和SpatialRGPT論文解讀

目錄 一、SpatialVLM 1、概述 2、方法 3、實驗 二、SpatialRGPT 1、概述 2、方法 3、訓練方法 4、實驗 一、SpatialVLM 1、概述 SpatialVLM是最早的依賴傳統VLMs實現3D空間推理能力的論文&#xff0c;在24年1月由DeepMind團隊提出&#xff0c;當時對比的還是GPT4v&am…

理解GPU架構:基礎與關鍵概念

GPU 基礎概述&#xff1a;從圖形渲染到 AI 與高性能計算的核心 Graphics Processing Units&#xff08;GPU&#xff09;已從專用的圖形渲染硬件演進為 AI、科學計算與高性能任務的中堅力量。本文將介紹 GPU 架構的基礎知識&#xff0c;包括其組成部分、內存層次結構&#xff0c…

訂單狀態定時處理(Spring Task 定時任務)

訂單狀態定時處理 如果最后一秒剛好支付了咋辦?如何補償? 需要將支付狀態和訂單狀態一起考慮,或者直接使用狀態機 Spring Task 是Spring框架提供的任務調度工具,可以按照約定的時間自動執行某個代碼邏輯。 **定位:**定時任務框架 **作用:**定時自動執行某段Java代碼 …

職得AI簡歷-免費AI簡歷生成工具

本文轉載自&#xff1a;職得AI簡歷-免費AI簡歷生成工具 - Hello123工具導航 ** 一、核心功能解析 職得 AI 簡歷是 AI 驅動的智能求職平臺&#xff0c;通過深度學習算法分析百萬優質簡歷數據&#xff0c;提供從簡歷生成到面試準備的全流程服務&#xff0c;顯著提升求職競爭力。…

8.14 機器學習(1)

機器學習基礎一、什么是機器學習定義&#xff1a;讓計算機利用大量數據在特定任務上持續改進性能的過程&#xff0c;可以讓任務完成的更好。機器學習的領域很多。二、機器學習基本術語數據集、樣本、特征&#xff08;屬性&#xff09;、屬性空間、向量表示、訓練集&#xff08;…

給電腦升級內存,自檢太慢,以為出錯

公司電腦是16G內存&#xff0c;用虛擬機時非常吃力。于是跟領導說&#xff0c;買了32G內存和1T SSD。電腦有兩個SATA數據線&#xff0c;SATA電源頭只有一個。于是買了幾個1轉2&#xff0c;順利接上。把原來的16G拔下&#xff0c;換上32G內存。結果開機沒反應。心里就有點嘀咕&a…

Effective C++ 條款43:學習處理模板化基類內的名稱

Effective C 條款43&#xff1a;學習處理模板化基類內的名稱核心思想&#xff1a;模板化基類&#xff08;templatized base classes&#xff09;中的名稱在派生類模板中默認不可見&#xff0c;需要通過this->前綴、using聲明或顯式基類限定來引入。這是因為編譯器在解析模板…

Mybatis簡單練習注解sql和配置文件sql+注解形式加載+配置文件加載

項目結構 d:\test\runjar\data\static\data\mybatis_helloworld\Mybatis\ ├── lib\ │ ├── asm-3.3.1.jar │ ├── c3p0-0.9.1.2.jar │ ├── cglib-2.2.2.jar │ ├── commons-logging-1.1.1.jar │ ├── ehcache-core-2.6.8.jar │ ├── javassi…

抗日勝利80周年 | HTML頁面

飛翔的和平鴿&#xff1b;屹立的人民英雄紀念碑&#xff1b;倒下的日本國旗&#xff1b;旋轉的金色勛章無不代表著我們勝利了&#xff01;&#xff01;&#xff01;HTML源代碼&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta cha…

web仿寫網站

一、完成自己學習的官網&#xff0c;至少三個不同的頁面。1、界面1&#xff08;1&#xff09;代碼<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

基于element-plus和IndexedDB數據庫的基礎表單

本文介紹了基于Vue 3和Element Plus的表單項目配置頁面實現。頁面包含搜索欄、操作按鈕、數據表格和分頁組件&#xff0c;使用IndexedDB進行本地數據存儲。主要功能包括&#xff1a;1) 通過模糊查詢搜索項目&#xff1b;2) 分頁顯示項目數據&#xff1b;3) 添加/編輯/刪除項目操…

paimon實時數據湖教程-主鍵表更新機制

在上一章&#xff0c;我們學習了 Paimon 如何保證每一次寫入的原子性和一致性。但數據倉庫的核心需求不僅是寫入&#xff0c;更重要的是更新。想象一個場景&#xff1a;我們需要實時更新用戶的最新信息&#xff0c;或者實時累加計算用戶的消費總額。傳統的 Hive 數據湖對此無能…

第十六屆藍橋杯青少組C++省賽[2025.8.9]第二部分編程題(4、矩陣圈層交錯旋轉)

參考程序&#xff1a;#include <bits/stdc.h> using namespace std;const int MAXN 105; int a[MAXN][MAXN];int main() {int n;if (!(cin >> n)) return 0;for (int i 0; i < n; i)for (int j 0; j < n; j)cin >> a[i][j];int layers n / 2; // 每…

【FastGTP?】[01] 使用 FastGPT 搭建簡易 AI 應用

簡易應用&#xff1a;英語單詞解釋 例句 1. 前言 FastGPT 是一個低代碼 AI 應用構建平臺&#xff0c;可以通過簡單配置快速創建自己的 AI 應用。 本文將帶你用 FastGPT 搭建一個 英語單詞解釋 例句 的 AI 工具&#xff0c;輸入英文單詞后&#xff0c;輸出&#xff1a; 單詞…

【Mysql語句練習】

MysqlMysql語句練習一、建庫建表二、插入數據三、查詢Mysql語句練習 一、建庫建表 1、創建數據庫mydb11_stu&#xff0c;并使用數據庫 # 創建數據庫mydb11_stu mysql> create database mydb11_stu; Query OK, 1 row affected (0.00 sec) # 使用數據庫 mysql> use mydb1…

用Python Scrapy征服網絡爬蟲(反爬技術深入剖析)

目錄 第1章:Scrapy是個啥?為什么它是你爬蟲路上的最佳拍檔? 1.1 Scrapy的核心亮點 1.2 啥時候用Scrapy? 1.3 安裝Scrapy 第2章:動手寫你的第一個Scrapy爬蟲 2.1 創建Scrapy項目 2.2 定義數據結構(Items) 2.3 編寫爬蟲邏輯 2.4 運行爬蟲 2.5 小技巧:調試爬蟲 …

解決Electron透明窗口點擊不影響其他應用

遇到的問題&#xff1a;在electron透明窗口點擊&#xff0c;影響窗口下的應用接受不到點擊事件解決方案&#xff1a;CSSIgnoreMouseEvents實現原理&#xff1a;主進程默認設置禁用目標窗口鼠標事件&#xff08;禁用之后能檢測到mousemove&#xff09;&#xff0c;UI進程檢測頁面…

C# 泛型(Generics)詳解

泛型是 C# 2.0 引入的核心特性&#xff0c;它允許在定義類、接口、方法、委托等時使用未指定的類型參數&#xff0c;在使用時再指定具體類型。這種機制可以顯著提高代碼的復用性、類型安全性和性能。一、泛型的核心概念類型參數化泛型允許將類型作為 "參數" 傳遞給類…

Spring中存在兩個相同的Bean是否會報錯?

第一種情況&#xff1a;使用XML的方式設置Bean&#xff0c;這種情況在Spring啟動時就會報錯&#xff0c;因為ID在Spring中是Bean的唯一標識&#xff0c;Spring容器在啟動時會校驗唯一性&#xff0c;一旦發現重復就會報錯。但是如果是在兩個不同的XML文件中定義兩個相同的Bean&a…

【新手入門】Android基礎知識(一):系統架構

目 錄 Android 系統架構圖 1. 應用 2. JAVA API 框架 3. 原生 C/C 庫 4. Android 運行時&#xff08;Android Runtime&#xff09; 5. 硬件抽象層 (HAL) 6. Linux 內核 參考資料 Android 系統架構圖 Android底層內核空間以Linux Kernel作為基石&#xff0c;上層用戶空…