javascript - 如何在不添加一些组件或模块的情况下构建 Angular 应用程序?
问题描述
我正在使用 Angular 9 构建一个包含许多模块化的模块和组件的应用程序。当我将构建这个应用程序时,我需要排除一个模块或组件进行编译。我说模块或组件是因为我不知道在编译时排除此功能的最佳方法是什么。
例如:
我有两个组件。
comp1.component.ts
包含三个按钮:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-comp',
templateUrl: './comp1.component.html',
styleUrls: []
})
export class Comp1Component implements OnInit {
title = 'Loaded Component 1.';
constructor() { }
ngOnInit(): void {
}
}
comp2.component.ts
包含两个按钮:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-comp',
templateUrl: './comp2.component.html',
styleUrls: []
})
export class Comp2Component implements OnInit {
title = 'Loaded Component 2.';
constructor() { }
ngOnInit(): void {
}
}
两者.html
都是一样的:
<p>{{title}}</p>
通过其他方式,我有另一个组件,我想加载这两个组件中的一个,具体取决于我加载的环境。
在环境 A中,我需要负载comp1.component.ts
,在环境 B中,我需要负载comp2.component.ts
。但是,如果我加载其中一个组件,则另一个组件不应包含在此应用程序的构建中,但我不知道如何解决这个问题......
有什么想法可以解决这个问题吗?
感谢收看。
解决方案
environment
您可以在构建目标之间更改文件时执行相同的操作
"configurations": {
"target-with-component2": {
"fileReplacements": [
{
"replace": "path/to/comp1.component.ts",
"with": "path/to/comp2.component.ts"
}
],
它将按照问题中的要求替换组件
推荐阅读
- go - go channels 和 goroutines 是如何翻译成 webassembly 的?
- react-native - 如何在 React Native 中使用来自 AsyncStorage 的值触发条件渲染?
- java - 只有在两个并发进程结束后才运行函数的最佳方法?
- asp.net-core - Signalr 协商请求是否会导致 503 服务不可用错误?
- apache-kafka - Kafka Cluster : Zookeeper 节点显示不同的主题配置信息
- razor - HTML 中的 Blazor Razor 返回语句
- numpy - mpmath.mpfs 方阵的 numpy.linalg.det
- .net - 使用值对象作为 RavenDB .NET 客户端的标识符
- javascript - 我可以从我被放入 iframe 的其他域读取/访问/收听 cookie 吗?
- django-rest-framework - 过滤rest框架的相关模型