推荐 最新
小青梅

pnpm workspace,管理项目monorepo问题?

pnpm的monorepo问题, packages: * 'main' * 'web/**' * 'common' * 'common2' common的package.json { "name": "common", "version": "1.0.1", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } 在main文件里面pnpm -F main add common 但是添加的包,不是本地的,这个是什么问题 改动common的version版本号,子项目不能以0开头的版本号, pnpm -F main add @project/common 也是不行, 是404,走npmjs库了 // =========================================== windows: node -v: v16.20.0 pnpm -v: 8.6.7 pnpm -F main common 完全ok ubuntu: node -v: v20.12.2 pnpm -v: 9.0.6 ubuntu 始终走的npm库 不知道为啥,修改过common的name, pnpm -F main add @project/common 不行。 ubuntu暂时没有很好的解决办法。

0
1
0
浏览量197
我想对你说

pnpm或者npm v7的monorepo项目怎么进行本地开发调试?

请问在创建monorepo时如何进行本地开发调试,我了解到创建monorepo项目的两种方式为pnpm、npm的workspace。 我创建了一个示例代码库 "https://github.com/jervainy/demo-monorepo.git" (https://link.segmentfault.com/?enc=gpIKvjU%2BZgZju4OVBUcJ2g%3D%3D.mq%2BfZBkQPr3Q3FyNnO1xDVwGdmhlrXi1lF9bds7NQ0ie20PUYKeJ%2Fy%2FmbFzjsCnf), 有两个工程,lerna-workspace-demo 采用npm workspace方式创建的monorepo项目;pnpm-workspace-demo 采用pnpm创建的monorepo项目。这两个项目中pkg0引用utils模块,采用vite打包。 当我将package.json中的main、module指向为lib/main.js时,utils中修改了内容后在pkg0中能马上刷新访问,但这会导致打包的文件不安全; 如果指向dist文件则不能实现热更新。如果将main指定为dist,怎样才能实现热更新? 开源项目tiptap "https://github.com/ueberdosis/tiptap.git" (https://link.segmentfault.com/?enc=QYIXWXxq2DjgMFFy8AVFlw%3D%3D.nN1aU8ZX8%2FJWF1Gk%2BO4DQXe%2FvxpkWzFWfXAZS7RqtIpyPCTbhbZWiNN82PxPTK6b)是采用的npm workspace创建的monorepo项目,package.json中main指向的dist文件,能进行热更新,采用的rollup打包; 请问为什么tiptap能实现热更新 我看过采用pnpm的项目,例如nuxt、vue3等,使用pnpm创建项目后同时也会在package.json中声明workspace,这是为什么,pnpm创建的monorepo项目如何实现热更新

0
1
0
浏览量178
577739990

monorepo + React + vite 无法使用公共UI库 ?

描述 在monorepo项目中packages中创建一个公共UI库(ui-lib)在react-ts-app中使用的时候会有如下提示 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240918/c3c6a8d4cb7f45adb857666d8e1bde83.png) 抓头时间😩 在一顿网上冲浪查询之后,说是存在多个React实例 链接 "https://juejin.cn/post/7121178707490209806" (https://link.segmentfault.com/?enc=OCmlhil99rBEhmxS6OIAzw%3D%3D.UK2ZYlqyOeH17FhS7%2F0I6vGSAFEKUjJoAxM1Etr52ruuLcdZAwYsQgmrQUoDybOO) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240918/2a118e7509a19812b07c1d2adeb885fb.png) 针对该问题问了下GPT给我的回答: 嘤嘤嘤 😭😭😭 一顿操作之后问题还是没有解决!!!😭😭😭 文件目录 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240918/c1d6639b46f2ce4ce849e3e4a4d26223.png) 补充一下项目使用的是webpack打包的,react版本 18.2.0。UI-lib React版本 18.3.1 有没有什么解决方法啊救救孩子 项目GIT地址:"https://gitee.com/yyytxxx/monorepo/tree/test/" (https://link.segmentfault.com/?enc=fCY87bMbZ3UgOsow1Qtgfg%3D%3D.NRANm24jB69EHpbdcWdCdjGQwaXnN1B9OvxT%2BXXmj6IJwCG7TIVIxipWjHy3pGTh) 补充 0801-1839: PS:从代码库拉的代码如果直接在根目录下pnpm i 的话会导致 react-ts-app 中的react版本更到最新的即与ui-lib的版本一致(这种情况不会有问题)。** 只有他们的React的版本有差异才会出现上面多个实例的错误** "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240918/fe25a96ccbffcbdf3d36c21e22a7a637.png) # 在react-ts-app中执行,确保存在差异 pnpm remove react react-dom @types/react @types/react-dom pnpm add react@18.2.0 react-dom@18.2.0 pnpm add -D @types/react@18.2.46 @types/react-dom@18.2.18

0
1
0
浏览量121
我是张工你呢

monorepo 项目是否可以做到不被固有的目录结构所限制?

在使用pnpm "workspace.yaml" 来实现monorepo的时候,需要:预先配置好项目结构 : "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240916/41f7900b6e65654e1ff9c974f5a4f562.png) 1)多个项目都放在packages/目录下 2)想要共享的子包,放在定义的 components/目录下(或加上其他的目录) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240916/331d68361231e2880151649f18ff4da0.png) === 但是这样的目录结构是有限制的。 比如我们开发多个项目(eg. react-demo-08, react-demo-09): 1)项目的目录结构已经成型: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240916/29bd07b7a9da11db9ebe2b9c95bd4ba5.png) 2)并且开发的时候,都是VSCode打开react-demo-08, react-demo-09 这样多个界面 请问现在想要对react-demo-09内的components下的一个子包进行共用,使用现有的 pnpm + monorepo 技术是做不到的是吗?

0
1
0
浏览量114
MastFancy

前端多人团队协作开发,多项目有公共模块,应该采用什么方案?

关于团队开发多个项目并存在模块共用这个问题,找了不少的解决方法,如 * git subtree * monorepo * npm 包 * ... 但有个问题,就是构建。 *** 项目代码目前是放在阿里云效上面,每个项目都是独立的仓库,公共模块在每个项目都有一份,在流水线构建时只需指定库就行。 而当要抽离公共模块,想要采用的方案是 "monorepo",多人对同一个库进行开发,构建是否可以直接通过指令编译? 如果出现需要进行版本回退的情况,对其他项目的影响应该如何处理?

0
1
0
浏览量20
感觉对了

pnpm构建Monorepo项目的一些问题?

场景如下:有三个项目A,B,C,这三个项目的关系如下图 "image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/50e868babe9f54235491f3a1cc4e3493.png) 1. A是一个核心项目,其最终会使用Electron打成一个独立的项目A.EXE 2. B项目是A项目的超集,在A的基础上会增加一部分功能,最终是一个B.WEB项目 3. C项目是B项目的超级,在B的基础上也会增加一部分功能,最终也会使用Electron打成一个独立的项目C.EXE 经过一番调研,前端打算使用pnpm构建Monorepo架构,初步设想如下: root ├── package.json ├── pnpm-workspace.yaml ├── packages ├── common ├── package.json ├── utils ├── package.json ├── A ├── package.json ├── B ├── package.json ├── C ├── package.json common用于存放那些共用的业务代码,a,b,c分别去依赖这个包。如果我把common包所需要vue、vue-router、pinia都安装到common里,然后a,b,c去依赖它,但是这个时候在a,b,c中导入vue就不行了,这跟我想的有点不一样哈(依赖不能传递吗?),所以我只能把它安装到根目录下 。安装到根目录下倒是跑起来了,不知道这样可以吗?刚接触到这个,前端也不是很熟,求大佬指导 "image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241027/447ed0285015ffc072f28ecaf7812ccb.png) 大致了解了Monorepo架构,初步选项使用较为简单的pnpm

0
1
0
浏览量20