【山竹记账前端-vue】1.搭建前端项目.md
大纲链接 §
[toc]
1. 使用 oh-my-env 开发环境 ⇧
快速启动开发环境 ⇧
- 下载 oh-my-env-1
- 使用
VSCode打开目录- 预装
Docker Desktop加速镜像已配置 - 预装插件
Dev Container - 已开启
wsl等 - 详见 搭建Docker开发环境
- 预装
Reopen in Container等加载完毕,可关闭当前终端窗口- 另外打开终端 默认使用
zsh - 使用
nvm install 22最新版- 单独安装
pnpm: - 首先
npm install --global corepack@latest - 然后
corepack enable - 最后
corepack prepare pnpm@11.27.0 --activate
- 单独安装
- 工作目录
~/repos在这个目录中创建项目目录 - 根目录
~即/root- 放置
.ssh目录 - 放置
.bashrc文件 - 放置
.gitconfig文件
- 放置
快速配置开发环境 ⇧
锁死
npm版本号
- 运行
npm config set save-prefix=''去除^
配置
ssh,快速使用github项目
|
|
配置
git,快速使用github项目
|
|
搭建前端框架 ⇧
- 前端技术栈
Vite 8 + Vue 3 + Typescript 7(TSX) + VueRouter 5 + Pinia - 开发环境:全程使用 我的开发环境 oh-my-env-1
node@19.9.0 (npm v8.19.2)(使用nvm use system开启)pnpm@6.32.3(推荐代替npm和yarn)- 使用淘宝
npm源加速npm config set registry=https://registry.npmmirror.com - 不推荐
npm@8.19.2(备用)、yarn@1.22.22(备用)
后续升级记录(20260920)
node@22.23.2 (npm@10.9.8)nvm alias system 22.23.2nvm alias default system
pnpm@11.27.0
创建前端项目 ⇧
- 运行
cd ~/repos - 运行
nvm use system或者升级到稳定版nvm use 22 - 创建项目,以下命令二选一:
pnpm create vite@8.3.0 mangosteen-fe-0 --template vue-tspnpm create vite@8.3.0根据脚手架提示选择选项- 项目名称:
mangosteen-fe-0 - 框架:
Vue - 框架变体-Vue官方启动器:
Official Vue Starter - 是否使用Vite 8:
Yes - 是否使用 TypeScript 语法
Yes - 选择要包含的功能
JSX支持Router(单页面应用开发)Pinia(状态管理)Vitest(单元测试)- 端到端测试
- Linter(错误预防)
- Prettier(代码格式化)
- 端到端测试框架:
Cypress - 试验特性:
- 使用
Oxfmt替代Prettier - 使用
typescript-native-bridge(tsgo)替代TypeScript
- 使用
- 包管理器:
pnpm
- 按照提示执行后续命令
- 推荐将
cd mangosteen-fe-0改为code mangosteen-fe-0使用VSCode打开
- 推荐将
|
|
安装完毕
|
|
- 虚拟软链接地址
node_modules/.pnpm - 实际安装地址
.pnpm-store/v11 - 可以节省磁盘空间
添加版本固定配置(文件) ⇧
pnpm config set save-prefix=''锁定版本;还需要在package.json中手动去除^,全局替换- 手动维护依赖版本号更新,也可以安装相关插件提示最新可用lts版本
.nvmrc运行命令echo "22.23.2" >> .nvmrc锁定版本;- 可以写脚本自动切换
node版本
- 可以写脚本自动切换
在
package.json中锁定Node.js版本 在package.json中添加配置
|
|
配置
.npmrc(适用于 npm / pnpm),在项目根目录下创建或编辑.npmrc文件,增加以下配置:
echo 'engine-strict=true' >> .npmrc1engine-strict=true让限制对
npm生效:默认情况下 engines 限制只对Yarn/Pnpm强生效或仅作警告如果使用
npm,需要在项目根目录下创建.npmrc文件才会开启严格检查
锁定包管理器
|
|
实现硬拦截,配合 preinstall 脚本,防止误用其他包管理器,在
package.json中添加配置
|
|
- 仅可使用
pnpm安装;运行都可
写到
README.md
参考
2. dev、build 和 preview ⇧
运行开发
pnpm dev
- 开启一个
server在Local: http://localhost:5174- 这个端口是容器
Linux的端口 VSCode做了端口自动转发- 在宿主机(
Windows)中也可访问这个端口
- 这个端口是容器
注意需要添加
--host参数,才能转发成功1 2 3 4 5 6{ "scripts": { "dev": "vite --host", "preview": "vite preview --host" } }
运行构建
- 运行
pnpm build - 遇坑(官方已修复,现无需处理)
pnpm build过程中报第三方打包错误node_modules/.pnpm/...- 处理过程就是报报错信息复制到google/ai中,尝试提示解决方法
- 在
tsconfig.json添加"skipLibCheck": true到"compilerOptions"字段中,可利用 自动补全查看 - 跳过依赖库代码检查,只需要检查项目代码即可
预览项目
pnpm preview --host- 查看
dist目录是否能正常运行 - 大约等价于
pnpm - http-serverhttp-server -p 4173 dist
3. 修改 build path 部署到 GitHub ⇧
把打包完的代码
dist部署到GitHub或服务器时必须配置build path
- 配置规则见 vite文档-开发或生产环境服务的公共基础路径
在
vite.config.js里添加base: '/'或base: '/reponame/'等'/reponame/'为github中仓库名称1 2 3 4 5 6 7 8import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/ export default defineConfig({ base: '/mangosteen/', plugins: [vue()], })
重新打包到
pnpm build
如果仅仅是本地预览,直接
base: '/'就可以了
- 但是上传
github会有中间的项目名,base中间写仓库名称即可 - 之后部署章节中会另外说明配属的配置,可用
node获取环境变量 - 目前暂时用不到
提交完开始部署
git init;git add .;git commit -m 'first commit'
- git相关配置见文章 搭建docker开发环境,配置git/github,创建.ssh 密钥
- 发布到
GitHub
4. 项目目录结构 ⇧
5. Template V.S. TSX ⇧
6. 引入 Vue Router 4 ⇧
7. 引入其他库 ⇧
piniaaxios
8. snippet 使用代码片段汇总 ⇧
9. 总结命令汇总 ⇧
|
|
参考文章
- 前端代码 github.com/FrankFang/ptmqtd
- 给 JSX 组件也来一份 Vue 式 scoped:jsx-scoped 让样式隔离不再靠自觉
- 我的 Vue 3 + TSX 项目
- react-mangosteen
- mangosteen-src-002
相关文章
- 作者: Joel
- 文章链接:
- 版权声明
- 非自由转载-非商用-非衍生-保持署名