Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

web-abin/Apex-MPA

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎉 🎉 🎉 Apex-MPA 🎉 🎉 🎉

Apex-MPA 是一个开箱即用的企业级多页面脚手架,基于 vue3+vite,配备各种工程化工具。如果觉得不错,点个 star 吧 😁

特性 🌼

  • 支持命令行一键创建子项目,并且可选是否使用 ts
  • 支持直接启动指定子项目 / 启动全部子项目
  • 支持打包指定子项目 / 全量打包
  • 打包后的 chunk,各子项目完全脱离解耦,降低风险
  • 配置完善的工程化工具,包括 esint、prettier、stulelint、husky、lint-stage、commitlint
  • 配置一些基本的插件,例如自动引入 Composition API、打包 size 分析工具、打包压缩工具

1.项目结构 📖

├── README.md
├── .husky   // git hook钩子
│   ├── commit-msg // 规范 commit message 信息
│   └── verify-commit-msg.mjs  // 脚本:commitlint 替代方案
├── dist //打包输出目录
├── scripts //存放一些脚本
│   ├── template         // 创建子页面的js模版
│   ├── template-ts      // 创建子页面的ts模版
│   ├── build.cjs        // 全量打包的脚本
│   ├── index.mjs        // 创建子页面的脚本
├── src
│   ├── arrets       // 公共静态资源
│   ├── components   // 公共组件
│   ├── store        // pinia 共享状态存储库
│   ├── utils        // 公共方法
│   └── Projects     // 多页面文件夹
│       ├── index.html         // 启动全部子项目的重定向导航页面
│       └── multiPages.json    // 所有子项目的集合
├── types  //ts 声明文件
├── .env.development   // 开发环境-环境变量
├── .env.production    // 生产环境-环境变量
├── .eslintrc.cjs      // eslint 配置
├── .gitignore         // git 提交忽略文件
├── .prettierignore    // prettier 忽略文件
├── .prettierrc.js     // prettier 配置
├── .stylelintignore   // stylelint 忽略文件
├── .stylelintrc.js    // stylelint 配置
├── .pnpm-lock.yaml    // 锁定项目于一份各个依赖稳定的版本信息
├── .stats.html        // chunck size 分析页面
├── tsconfig.json      // ts 配置
├── tsconfig.node.json // vite在node环境中的 ts 规则
├── vite.config.ts     // vite 配置
├── package.json

2.如何使用 🔑

🪴 基本操作

  //全局安装 pnpm
  npm install -g pnpm
  //切换淘宝源
  pnpm config set registry https://registry.npmmirror.com/

  pnpm i

安装husky,不然可能钩子不会生效

./node_modules/.bin/husky install

🪴 启动

启动全部子项目

npm run dev

启动指定子项目

npm run dev --page=子项目文件夹名
例如: npm run dev --page=pageone

🪴 创建子项目

执行以下命令:

npm run new:page

// 创建使用ts的子项目:
npm run new:page --ts

执行命令后终端提示:请输入要生成的'页面名称:页面描述'、会生成在 /src/Project 目录下
例如输入:mypage:我的页面
输入页面信息回车确认后,会在 scripts/multiPages.json 中生成对应的数据,后期如果要删除页面最好删除对应的数据以保持一致

multiPages.json页面中可以查看各个页面的功能,格式如下:

;[
  { chunk: 'pageone', chunkName: '页面1' },
  { chunk: 'pagetwo', chunkName: '页面2' },
  { chunk: 'pagethree', chunkName: '页面3' }
]

🪴 打包

正式环境打包

单页面打包:

npm run build --page=页面名称

全量打包:

npm run build:all

测试环境打包

单页面打包:

npm run build:test --page=页面名称

全量打包:

npm run build:all test

说在最后 💝

如果本脚手架对你有帮助,希望可以点个 star ⭐️⭐️⭐️ 谢谢 🌹🌹🌹

image.png

About

vue3多页面开箱即用脚手架,技术栈vite+vue3+ts+esint+prettier+stulelint+husky+lint-stage+commitlint

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.