更改angular cli项目中的目录结构

更改angular cli项目中的目录结构,angular,angular-cli,Angular,Angular Cli,我一直在与angular cli打交道,以决定是否要将其作为我们正在启动的新项目的基础。我们是微软的长期合作伙伴,主要掌握服务器端知识,因此我们正在尽最大努力了解客户端框架世界的细节。我们喜欢angular cli项目,因为它具有内置测试、捆绑、树抖动等功能,而保留这些功能正是我提出问题的原因。我们遇到了更改默认目录结构的需要。我们使用MVC提供一个视图,该视图基本上是angular应用程序的index.html文件。如果使用标准angular cli项目文件夹结构执行此操作,则应用程序不会运行

我一直在与angular cli打交道,以决定是否要将其作为我们正在启动的新项目的基础。我们是微软的长期合作伙伴,主要掌握服务器端知识,因此我们正在尽最大努力了解客户端框架世界的细节。我们喜欢angular cli项目,因为它具有内置测试、捆绑、树抖动等功能,而保留这些功能正是我提出问题的原因。我们遇到了更改默认目录结构的需要。我们使用MVC提供一个视图,该视图基本上是angular应用程序的index.html文件。如果使用标准angular cli项目文件夹结构执行此操作,则应用程序不会运行或生成,因为所有路径引用都在查找。\src\app

我需要知道的是,我需要在angular cli设置中进行哪些更改,以便cli的自动监视、构建、绑定、测试等功能继续与这种新结构配合使用,或者,这不是我们想要深入研究的内容,因为它将在未来中断


angular cli中有很多自定义选项,您可以通过更新
angular cli.json
文件来实现

    "root": "src",
    "outDir": "dist",
    "assets": [
        "assets"
      ],
      "index": "index.html",
      "main": "main.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "",
      "mobile": false,
      "styles": [

      ],
      "scripts": [

      ],
      "environments": {
        "source": "environments/environment.ts",
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
大多数配置都是不言自明的,您可以使用它们来实现所需的功能


希望这有帮助

您是否尝试了
nginit--sourcedir

PS C:\Users\andre\Workspace\myproject> ng init --help

ng init <glob-pattern> <options...>
  Creates a new angular-cli project in the current folder.
  aliases: u, update, i
  --dry-run (Boolean) (Default: false)
    aliases: -d
  --verbose (Boolean) (Default: false)
    aliases: -v
  --link-cli (Boolean) (Default: false)
    aliases: -lc
  --skip-npm (Boolean) (Default: false)
    aliases: -sn
  --skip-git (Boolean) (Default: false)
    aliases: -sg
  --skip-tests (Boolean) (Default: false)
    aliases: -st
  --skip-commit (Boolean) (Default: false)
    aliases: -sc
  --name (String) (Default: )
    aliases: -n <value>
  --source-dir (String) (Default: src)
    aliases: -sd <value>
  --style (String) (Default: css)
  --prefix (String) (Default: app)
    aliases: -p <value>
  --routing (Boolean) (Default: false)
  --inline-style (Boolean) (Default: false)
    aliases: -is
  --inline-template (Boolean) (Default: false)
    aliases: -it
PS C:\Users\andre\Workspace\myproject>nginit--help
ng init
在当前文件夹中创建新的angular cli项目。
别名:u、更新、i
--干运行(布尔值)(默认值:false)
别名:-d
--详细(布尔)(默认值:false)
别名:-v
--链接cli(布尔值)(默认值:false)
别名:-lc
--跳过npm(布尔值)(默认值:false)
别名:-sn
--跳过git(布尔值)(默认值:false)
别名:-sg
--跳过测试(布尔值)(默认值:false)
别名:-st
--跳过提交(布尔值)(默认值:false)
别名:-sc
--名称(字符串)(默认值:)
别名:-n
--源目录(字符串)(默认值:src)
别名:-sd
--样式(字符串)(默认值:css)
--前缀(字符串)(默认值:app)
别名:-p
--路由(布尔值)(默认值:false)
--内联样式(布尔)(默认值:false)
别名:-是
--内联模板(布尔值)(默认值:false)
别名:-它

Madhu,我认为这会有所帮助,但当我尝试修改“root”配置元素的值时,我在构建过程中开始出现错误。我将其设置为根文件夹名“bt2.web”。错误是:C:\dev\ph\git\BT2\BT2.web\BT2.web\main.ts不存在您是否尝试提供您的webfolder的名称,您还必须记住,所有路径都是相对于根变量的。根路径条目是否相对于angular-cli.json文件?经过多次尝试后,我得出结论,angular cli假定默认项目文件夹结构的位置太多,我无法轻松更改。我并不是说这是不可能的,只是不像在配置中更改根文件夹的名称那样简单。谢谢你的帮助,马杜!您是否尝试过设置
“根”:“/”
?在您的情况下,如果它实际上接受相对路径,则应该这样做。