在使用pnpm workspace.yaml
来实现monorepo的时候,需要:预先配置好项目结构:
1)多个项目都放在packages/目录下
2)想要共享的子包,放在定义的 components/目录下(或加上其他的目录)
===
但是这样的目录结构是有限制的。
比如我们开发多个项目(eg. react-demo-08, react-demo-09):
1)项目的目录结构已经成型:
2)并且开发的时候,都是VSCode打开react-demo-08, react-demo-09 这样多个界面
请问现在想要对react-demo-09内的components下的一个子包进行共用,使用现有的 pnpm + monorepo 技术是做不到的是吗?
首先是开发的时候,应该打开pnpm-workspace.yaml
所在的目录。而不是每个项目单独打开。
在components下新建一个app,例如shard_01, 那么把react-demo-09中共用的部分,剪切到components/shard_01/index.ts
作为独立的包,并配置components/shard_01/package.json
"name": "@components/shard_01"
然后在react-demo-08, react-demo-09的package.json中引用这个包。
"dependencies":{
"@components/shard_01": "workspace:*",
}
然后在项目内写入引用语句
import * as shard_01 from '@components/shard_01';
console.log(shard_01)
/components
不就好了。在monorepo项目中,确实通常会有一个预先定义的目录结构来组织不同的包(packages)和可能的共享组件(components)。然而,这并不意味着monorepo项目必须被这种固有的目录结构所限制。相反,你可以通过一些配置和调整来灵活处理你的项目结构,以满足你的特定需求。
对于你提到的情况,即使你的项目(如react-demo-08
和react-demo-09
)已经存在于一个更广泛的项目结构中,你仍然可以:
react-demo-09
需要访问react-demo-08
中的某个组件或库,并且你不想或不能改变它们的物理位置,你可以使用操作系统的软链接功能来在react-demo-09
的目录中创建一个指向所需组件的链接。不过,这种方法可能需要你在构建和运行时处理路径解析的问题。pnpm
配置:在pnpm
的workspace.yaml
中,你可以灵活定义哪些目录或文件被视为工作区的一部分。虽然pnpm
默认会寻找packages/
目录下的包,但你可以通过修改配置文件来包括其他路径。例如,你可以将react-demo-08
和react-demo-09
的components目录都添加到工作区配置中,这样它们就可以被pnpm
识别为可共享或依赖的组件库。components
目录或packages
目录下的一个新包中,然后在需要的地方通过pnpm
的依赖管理功能来引用它们。综上所述,虽然monorepo项目通常会遵循一定的目录结构约定,但你完全可以通过上述方法或其他创造性的解决方案来绕过这些限制,以适应你的特定需求和工作流程。
项目模块的命名以及目录结构 一、项目的命名规则 PS : 项目的基础包路径和项目的命名一致 1 . 服务接口 : 项目名称 + 逻辑层名称 + 模块名称 + interfaces 服务接口例子 : banniu.data.salecrm.interfaces 基础包路径就是 : banniu.data.salecrm.interfaces 服务接口后面的interfaces是固定的 2 . 提供
我查看了我的pycharm项目,注意到有2个不在那里,查看了我所有的IDE版本,没有。现在我100%确定我做了这些项目,所以我的问题是pycharm对它能容纳的项目有限制吗?我注意到,当我试图用我已经拥有的大量项目创建一个新项目时,pycharm加载新项目窗口的速度似乎很慢,或者有时根本无法加载,我必须多次创建项目才能注册。 希望你们能回答这个问题
场景如下:有三个项目A,B,C,这三个项目的关系如下图 A是一个核心项目,其最终会使用Electron打成一个独立的项目A.EXE B项目是A项目的超集,在A的基础上会增加一部分功能,最终是一个B.WEB项目 C项目是B项目的超级,在B的基础上也会增加一部分功能,最终也会使用Electron打成一个独立的项目C.EXE 经过一番调研,前端打算使用pnpm构建Monorepo架构,初步设想如下: c
问题内容: 我从事过maven项目,其中目录结构如下: 我想知道是否存在其他目录结构约定。此约定是Maven特定的还是适用于所有Java?我有一个需要多种编程语言的项目,并对是否存在某种标准感到好奇。 问题答案: 它是Maven特定的目录结构约定,但是它在Maven领域之外也很流行,因为它很好(就像其他有意义的约定一样),没有理由不将其与Ant管理的项目一起使用常规Java项目。甚至项目的Java
嗨,我已经使用以下命令在Ubuntu16.0.4中安装了JDK10。 我遵循下面的链接安装Java10。 如何在Ubuntu下安装JDK10? 他们正在显示正确的版本。 我尝试了安装的两个选项,但当我给出JDK路径表单IntelliJ时,我得到的是 “所选目录不是JDK的有效主目录”错误。
当默认的项目结构不适用时,可以自定义配置。查看 Gradle 文档中 Java plugin 部分以了解如何在纯 Java 项目中进行配置。 Android plugin 使用了类似的语法,但因为 Android 有自己的 sourceSets,所以需要配置到 android 块中。下面的例子使用了旧的项目结构(Eclipse),并把 androidTest 的 sourceSet 映射到 tes