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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;上层用户空…