javascript - 在另一个 javascript 项目中导入 2 个 Angular 项目
问题描述
我有 2 个独立的 Angular 项目。对于它们中的每一个,我运行以下 CLI 命令:
ng build --prod --output-hashing=none
它为每个项目创建以下文件:
runtime.js
polyfills.js
main.js
现在我想将项目导入另一个项目,这是一个简单的 javascript 项目(不是 Angular 项目)。
我知道顺序很重要,runtime.js
而且polyfills.js
出现两次。所以我确保这些文件是相同的(因为我在两个项目中使用相同的 Angular 版本)。
简单 javascript 项目中的导入如下所示:
<script src="runtime.js"></script>
<script src="polyfills.js"></script>
<script src="main1.js"></script>
<script src="main2.js"></script>
不幸的是,似乎只有一个项目以这种方式工作(并且没有例外)。如果我只导入main1.js
或只有main2.js
它们会正常工作。
我想问题是我在每个项目中使用的依赖库,它们可能会相互覆盖,但我不知道我能做些什么。
更新:
不确定它是否相关,但在每个 Angular 项目中,我使用@angular/elements
它来发布我需要的组件。像这样的东西:
export class AppModule {
constructor(private injector: Injector) {
const elem = createCustomElement(MyFirstComponent, { injector });
customElements.define('my-first-element', elem);
}
ngDoBootstrap() {}
}
然后在javascript项目中,我这样使用它:
var elem1 = document.createElement('my-first-element');
container.append(elem1);
var elem2 = document.createElement('my-second-element');
container.append(elem2);
解决方案
检查<app-root></app-root>
index.html 中的标记。您的 AppComponent 可能需要 2 个不同的选择器:
// app.component.ts for the first project
selector: 'app-root-one',
// app.component.ts for the second project
selector: 'app-root-two',
推荐阅读
- apache-spark - 如何在每个 Worker 中的 Spark Dataframe 中加载数据,以防止将大量数据加载到 Master 节点
- python - Pandas Groupby + Agg 上架速度非常慢
- tensorflow - Keras MaxPooling2D 中的 None 步幅是否根据过滤器大小动态设置?
- c++ - 嵌套循环边界
- .net-core - 我们可以使用 .Net 中的 FFMPEG 工具在生成的视频上添加背景音乐和帧率吗?
- python - Getting ValueError rending my Django CreateView
- c - 移动光标转义序列
- node.js - 节点 js 作为网络服务器使用过多的 if 条件来服务器静态文件
- linux - Linux内核中的`get_fs`和`sget_fc`有什么区别?(里面有一些错误信息)
- html - HTML将表格的屏幕截图保存为表格背景