蓝狮注册登陆简单带大家实践一下pnpm,也就几分钟的事情~

Monorepo
说pnpm之前先说说Monorepo,它是一个思想,我举个例子,蓝狮注册开户我现在需要做一个大项目——电商平台,那么我需要做以下几个子项目:

电商Web端
电商H5端
电商的后台管理系统
其实这三个子项目,都会用到网络请求、工具函数、公用组件,也就是:

axios -> request
lodash -> utils
antd -> components
。。。。。
按照以前的规范,一个项目肯定要安装一次axios,然后封装一遍request,但是其实这三个小项目都可以共用一个request,这样做的好处是:

1、多个项目统一规范,因为用到是同一个封装
2、不需要每个项目复制一遍,因为用到是同一个封装
3、request变动的时候,只需要改一处即可,因为用到是同一个封装
4、后续有新子项目时,可以使用现成的封装库
方案
市面上对于Monorepo有两个比较火的方案:

lerna + yarn
pnpm
今天就带大家简单地实践一下pnpm

简单实践
首先展示一下最终的目录:

.
├── README.md
├── package.json
├── apis
├── utils
├── components
├── packages
│ ├── web-client
│ └── h5-client
│ └── admin
└── pnpm-workspace.yaml

安装 pnpm
首先全局安装一下pnpm

npm i pnpm -g
新建一个根项目
首先Monorepo需要一个根项目,所以我们先创建一个根项目,他相当于一个容器,用来存放我们的子项目,所以这个根项目并不需要安装太多的依赖

npm init vue@3

Project Name -> pnpm-monorepo
Typescript -> Yes
JSX -> No
Pinia -> No
Testing -> No
Eslint -> No
创建 pnpm-workspace.yaml
cd pnpm-menorepo
然后新建pnpm-workspace.yaml文件,蓝狮注册登陆他的作用是:指定工作空间workspace的目录,里面的内容为:

packages:
# 子项目存放的地方

  • ‘packages/*’
    # 公用组件目录
  • ‘components/**’
    # request目录
  • ‘apis/**’
    # utils目录
  • ‘utils/**’
    创建公用目录
    接下来创建公用目录:

npm create vite

Project name: apis
Select a framework: › vanilla
Select a variant: › vanilla-ts

npm create vite

Project name: utils
Select a framework: › vanilla
Select a variant: › vanilla-ts

npm init vue@3

Project Name -> compnents
Typescript -> Yes
JSX -> Yes
Pinia -> Yes
Testing -> No
Eslint -> Yes
创建子项目
在packages目录下创建三个子项目:

web-client:web端
h5-client:h5端
admin:后台管理
创建方法使用npm init vue@3进行创建即可

封装request
然后咱们进入到apis目录下,进行请求的封装

0 Comments
Leave a Reply