Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何管理包含具有共享功能的不同应用程序的单个Angle project_Angular_Git_Modularity_Code Sharing - Fatal编程技术网

Angular 如何管理包含具有共享功能的不同应用程序的单个Angle project

Angular 如何管理包含具有共享功能的不同应用程序的单个Angle project,angular,git,modularity,code-sharing,Angular,Git,Modularity,Code Sharing,如果我有多个在特性和功能上相似的angular“应用程序”,比如我有一个产品,我想为不同的客户定制一个稍微不同的需求 如何在单个代码库中开发?因为功能模块,组件似乎无法解决问题 因此,代码可以分类为 普通的 项目1 项目2 所以,当我构建时,它将根据我的选择为特定的应用程序编译。有点像Xamarin为ios和android共享一点代码。我在这个特定用例中遇到的最常见的架构是创建一个角度库。在该库中,您将拥有所有通用业务逻辑。然后,您所需要做的就是在各种应用程序之间构建和共享库。希望有帮助:)

如果我有多个在特性和功能上相似的angular“应用程序”,比如我有一个产品,我想为不同的客户定制一个稍微不同的需求

如何在单个代码库中开发?因为
功能模块
组件
似乎无法解决问题

因此,代码可以分类为

  • 普通的
  • 项目1
  • 项目2

所以,当我构建时,它将根据我的选择为特定的应用程序编译。有点像Xamarin为ios和android共享一点代码。

我在这个特定用例中遇到的最常见的架构是创建一个角度库。在该库中,您将拥有所有通用业务逻辑。然后,您所需要做的就是在各种应用程序之间构建和共享库。希望有帮助:)
这是Angular in Depth上的一篇好文章

您可能需要一个包含多个应用程序的Angular项目,这样您就可以运行特定应用程序的构建—只需修改要运行的应用程序的名称即可。 您可以像这样配置.angular-cli.json

    "apps": [
    { "name":"app1",
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main-resolver.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
      "styles": [
        "styles.css",
       "../node_modules/@angular/material/core/theming/prebuilt/indigo-pink.css"
      ],
      "scripts": [],
      "environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    },
    { "name":"app2",
      "root": "src",
      "outDir": "dist2",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main-luxury.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
      "styles": [
        "styles.css",
      "scripts": [],
      "environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],

你可以试试这个

看看。这正是我想要的。因此,代码是共享的,项目在其中进行了配置,以便能够为不同的应用程序量身定制。我想我会在我的问题中交换我的“项目”和“应用”,因为这更有意义。为什么要投否决票?是的,因为直接url被答案评论员否决了。如果这解决了你的问题,你可以投票并将其标记为正确。干杯这意味着您假设项目有多个应用程序,例如通过generateapplicationcli命令创建的,对吗?