Nb工具的设计理念实在是太晦涩了

nb工具既承担项目初始化和多应用管理的职责,内部还调度了pm2工具,对于真正的开发人员来说非常不友好。

如果是线上项目,建议主推docker就可以了,现在有几个项目会用pm2工具管理的。
如果是本地开发环境,nb在用户目录下管理了多个env的应用,env名称都不能重复,且启动时又沿用了pm2的启动方式,理解上非常晦涩。对于开发者用户,肯定是希望项目间独立不打架,既然是开发人员,最习惯的相信还是yarn dev 这类项目独立启动并开发插件的模式,但是官方文档里主推都是nb cli工具,我从初始化到报错到最后研究了nb工具机制,再自行切换到 yarn create 方式创建项目脚手架,花费了很多认知理解成本。

希望官方还是针对场景设计好工具,明确下工具的使用角色和场景是谁。
部署人员,docker模式足矣,pm2应该设计为备选方案,而不是默认主推方案
研发人员,nb init 实现像 yarn create 的能力就足够了,不需要叠加 skills pm2 等管理模式,本地开发肯定是为了yarn dev 才建的项目,为什么要引入pm2呢,认知复杂就算了,目前还一堆问题。

最神奇的是,nb初始化的脚手架,目录结构是这样的,有2层storage目录,这到底是什么设计?最后用yarn create建的标准脚手架就没问题了。对开发人员来说,不需要层层包裹的开发模式

<appPath>/
├── source/          ← 应用源码(create-nocobase-app 脚手架生成的 monorepo)
│   ├── package.json
│   ├── packages/
│   ├── storage/     ← 源码内嵌的 storage(开发模式用)
│   └── ...
└── storage/         ← 外层 storage(nb CLI 管理的运行时用)