Angular CLI的自定义文件夹结构

Angular CLI的自定义文件夹结构,angular,angular-cli,Angular,Angular Cli,在使用Angular CLI设置新的Angular项目时,我遇到了一个挑战 我想创建一个文件夹结构,如下所示: -- src -- components -- app -- students -- faculty -- admin -- common -- search -- table -- table_row -- list

在使用Angular CLI设置新的Angular项目时,我遇到了一个挑战

我想创建一个文件夹结构,如下所示:

-- src
    -- components
       -- app
       -- students
       -- faculty
       -- admin
       -- common
          -- search
          -- table
          -- table_row
          -- list
          -- list_item
          -- header
          -- footer
          -- side_panel
    -- services
    -- static
       -- jsons
           -- cities
           -- states
           -- time_zones
       -- imgs
       -- scss
如果我们运行
ngccsomecomponent
命令,它只会在
src/app/
内部创建新组件

就代码而言,
app
本身就是一个组件,那么为什么Angular CLI不允许我们创建另一个与app组件并行的组件呢

但是,如果手动创建文件夹的结构而不使用CLI命令,则是可行的。该应用程序也运行良好


每个应用程序都有自己的大小和功能,并且需要一些特定的代码设计,那么为什么要施加这样的限制呢?有人能帮我理解这种结构的好处吗?

我使用了类似的东西:ng g c common\some component如果你需要它会进入\common\目录。

只要我能从
@angular/cli
源代码进行调试,
src
部分可以在
应用程序[]中设置
.angular cli.json
配置文件上的.root
属性

然而,
app/
部分来自
ember cli
蓝图,它似乎是构建应用程序的自以为是的途径

如果将
“root”:“
,则
ng generate component new
命令将以以下结构创建组件:

-- app
    -- new
        -- new.component.css 
        -- new.component.html
        -- new.component.spec.ts
        -- new.component.ts

编辑:我还没有解决与未使用“预期”结构有关的
ng serve
的一些问题,例如无法解析模块导入等。

这里解释了生成内容的默认根路径是src/app,并且是硬编码的(这意味着如果不使用ng cli,就无法更改它,这永远都不是一个好主意)


您可以在
.angular cli.json
中更改Approt选项,以避免创建应用程序文件夹:

"apps": [
    {
      "appRoot": ".",
      "root": "src",
      "outDir": "dist",
      ...
    }
  ]
然后您可以使用
ng generate
命令在components文件夹中创建组件:

ng generate component components/common/search

如果您还想跳过创建
src
,则将
“root”
设置为
“\\”

检查确切路径..您的错误,因为CLI将从根文件夹开始,作为
src/app/feature1..
@Aravind,我们可以在angular CLI config中更改根文件夹/文件。我的问题是,如果可以手动创建任何文件夹结构,那么为什么在使用CLI命令时会有限制?@vikrametes正在使用
ember cl我
blueprints将所有内容放在
app
下面,CLI只添加配置为
root
的目录。请尝试更具体地说明如何使用您的解决方案来回答OP的问题。可能还会为该命令添加一些格式!:-)非常感谢。非常有帮助!您知道我们必须如何配置Angular 6“Angular.json”配置吗?非常感谢你!“不允许进行属性批准”:(