# pnpm_monorepe_libs_start **Repository Path**: sky080808/pnpm_monorepe_libs_start ## Basic Information - **Project Name**: pnpm_monorepe_libs_start - **Description**: pnpm_monorepe_libs_start - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-23 - **Last Updated**: 2024-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用说明 ## 目前可启动版本记录 ``` 时间 2024年1月23日 node -v v16.16.0 pnpm -v 7.8.0 ``` ## 本项目启动步骤 ``` 1、https://gitee.com/sky080808/pnpm_monorepe_libs_start.git 2、git submodule add https://gitee.com/sky080808/libs.git libs 3、pnpm i 4、pnpm run serve 5、pnpm run build ``` ## 项目开发规范 ``` - 代码管理方式:monorepo - 包管理工具:pnpm - 顶层包安装: pnpm add -w lodash // -w 表示安装到root层 pnpm add -D -w lodash // -D 表示安裝到 devDependencies - 项目包安装: pnpm add -w lodash -r --filter @sykj/module1 pnpm add -D -w lodash -r --filter @sykj/module1 // -D 表示安裝到 devDependencies 备注:@sykj/module1 是对应的项目名称 ``` ## 特别之处 ``` 1、子模型增加libs依赖 package.json -→ "@sykj/test_libs": "workspace:^1.0.0" 2、vue.config.js中添加别名 chainWebpack: config => { config.resolve.alias.set('@libs', require('path').resolve(__dirname, '../../libs/')); } 3、以上第一和第二选择其一方法可使用公共的libs,libs可供多个项目使用 4、pnpm-workspace.yaml是pnpm一个重要的配置文件,自动识别工作空间 ``` ## 从0开始构建Monorepo + pnpm 初始化步骤 ``` # 1 目前pnpm是7版本 npm i pnpm -g # 2 设置淘宝源 pnpm config set registry https://registry.npmmirror.com/ # 3 初始化项目(根目录) pnpm init --yes # 4 创建workspace文件(重要) pnpm-workspace.yaml # 5 创建 packages mkdir packages # 6 packages下子应用 # 7 拉取libs git submodule add https://gitee.com/sky080808/libs.git libs # 8 package.json 添加libs依赖 "@sykj/test_libs": "workspace:^1.0.0" # 9 安装所有工作空间的依赖,包含libs pnpm i ```