首页 > 解决方案 > NX 是否可以自定义新的应用程序文件夹结构?

问题描述

我收到了一项任务,看看如何为新应用程序自定义文件夹结构,更准确地说,是嵌套应用程序。我进行了搜索,发现可以在 tools 文件夹下创建一个 lib 文件夹,并且按照模式,我可以使用generateFilesfrom填充预先创建的文件结构@nrwl/devkit。下面的示例显示了一个与 lib 一起使用的简单结构,其中将更改变量名称并使用名称中的“__ __”填充文件:

my-lib/
├── files/
   ├── mysql/
   |    ├── __originalName__.mwb
   |    └── schema.json
├── src/
    ├── index.ts__tmpl__
    └── models.ts__tmpl__

好吧,首先,我想知道是否可以在仍然在内存中的情况下更改新的应用程序结构,然后才在磁盘上写入。

因此以 Nest 为例,一个新的 Nest 应用程序将如下所示:

├── src/
   ├── app.controller.spec.ts
   ├── app.controller.ts
   ├── app.module.ts
   ├── app.service.ts
   ├── main.ts

但是,让我们想象一下,我需要将app.controller.tsand更改为一个新文件夹,并为每个新的 nest appapp.controller.spec.ts创建一些其他文件。我还没有使用nest的经验。

├── src/
   ├── controllers/
      ├── app.controller.ts
      ├── app.controller.spec.ts
      ├── new.controller.ts
      ├── new.controller.spec.ts
   ├── app.module.ts
   ├── app.service.ts
   ├── main.ts

如果第一个问题是,我该如何实现?现在我正在尝试使用生成器。我运行npx nx generate @nrwl/workspace:workspace-generator app-nest它给了我一个起点,但我不知道如何更改文件。

我的参考:https ://nx.dev/latest/angular/generators/workspace-generators/

标签: typescriptnestjsnrwlnomachine-nx

解决方案


是的,你在正确的轨道上。您可以使用工作空间生成器来自定义虚拟树中的文件。生成文件后,无论是使用外部原理图还是使用模板(或两者),您都可以在生成器中对它们进行操作,仍然作用于虚拟文件系统。您可以尝试重命名树中需要移动的文件,并且可以从字符串或缓冲区写入文件。


推荐阅读