我目前正在使用 Angular Elements,更具体地说,我正在尝试使多个元素相互通信和交互。就我而言,我尝试创建的两个元素共享一个外部库(ag-grid),使它们能够显示用户可以与之交互的高级表格。
我的问题是关于这两个元素的捆绑。目前,我正在使用 ngx-build-plus 分别构建这两个元素。输出给了我 2 个 main.js、2 个 scripts.js、2 个 polyfills.js、... 文件,我的目标是每个元素有 1 个 main.js 文件,并且只有 1 个 scripts.js 文件可以在所有的元素。
ngx-build-plus 允许我们创建一个 webpack.external.js 来列出要共享的依赖项:
module.exports = {
"externals": {
"rxjs": "rxjs",
"@angular/core": "ng.core",
"@angular/common": "ng.common",
"@angular/common/http": "ng.common.http",
"@angular/platform-browser": "ng.platformBrowser",
"@angular/platform-browser-dynamic": "ng.platformBrowserDynamic",
"@angular/compiler": "ng.compiler",
"@angular/elements": "ng.elements",
// Uncomment and add to scripts in angular.json if needed
// "@angular/router": "ng.router",
// "@angular/forms": "ng.forms"
}
}
我一直在尝试将 ag-grid-angular 添加到此文件以及 angular.json 中的“脚本”数组中,但我没有取得任何成功,因为我对 Angular 或 Angular Elements 没有太多经验。