# monorepo-project **Repository Path**: xieanwe/monorepo-project ## Basic Information - **Project Name**: monorepo-project - **Description**: 项目公共方法二次封装,方便、快捷、提效 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-05 - **Last Updated**: 2025-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README created workspace 项目: 1. 创建工作空间:project-monorepo 2. 根目录 a.创建package.json 文件 b.创建workspaces.yaml 文件 c.创建example文件夹 d.创建packages文件夹 3. 在根目录下创建子项目: a.example中子项目:test-project b.packages中子项目:jz-tool-lib、jz-utils 备注:example、packages文件夹下子项目都是单独的一个项目 4. 如何在根目录中package.json中启动、打包、版本号、发布子项目 "build:jz-tool-lib": "pnpm --filter jz-tool-lib run build", "publish:jz-tool-lib": "pnpm --filter jz-tool-lib run publish", "serve:test-project": "pnpm --filter test-project run dev", "build:test-project": "pnpm --filter test-project run build" "changeset": "changeset" (子项目的变更集合) "changeset:pre": "changeset pre enter beta" (需要则执行,否则不执行;进入预发布模式,如果预发布模式下,需要执行changeset pre exit) "versionUpgrade": "changeset version && changeset pre exit" (更新子项目版本) --filter 是pnpm的过滤器,用来过滤子项目 5. 子项目如何相互之间引用 a.根目录下package.json中添加依赖, 然后执行pnpm install, 但是这种不是实时的,需要手动执行pnpm install。 "dependencies": { "jz-tool-lib": "workspace:*" }, 版本标识: *:表示依赖任意版本; ^:表示依赖最新次要版本;^1.2.3会安装1.x.x系列中最新的版本,包括次要版本的更新1.2.x,但不会跨过主版本升级2.x.x版本。 ~:表示依赖最新补丁版本;~1.2.3会安装1.2.x系列中最新的补丁版本,但不会升级到1.3.x。; b.使用pnpm link,创建软链接,供对应子项目使用。例如需要在test-project中使用jz-tool-lib,那么在test-project中执行pnpm link jz-tool-lib 私有服务: registry = "http://172.16.8.95:4873/" npm服务: registry=https://registry.npmjs.org/ // npm 超时问题 https://juejin.cn/post/7248926985576169532