[Angular] Use ngx-build-plus to compile Angular Elements
We can treat Angular Element as each standlone lib and compile each Angular element spreatly. Tool we are using to compile Angular element is 'ngx-build-plus':
Install:
npm i --save ngx-build-plus
It modifies the angular.json to use ngx-build-plus to compile our Angular Element lib.
Generate a project with Angular CLI and only keep the app.module.ts and your component ts file:
// app.module.ts: import { NgModule, Injector } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { createCustomElement } from '@angular/elements'; import { GreeterComponent } from './greeter.component'; @NgModule({ declarations: [GreeterComponent], imports: [BrowserModule], providers: [], entryComponents: [GreeterComponent] }) export class AppModule { constructor(injector: Injector) { const el = createCustomElement(GreeterComponent, { injector: injector }); customElements.define('do-greet', el); } ngDoBootstrap() {} }
component.ts:
import { Component, OnInit } from '@angular/core'; @Component({ // selector: 'do-greet', template: ` <div> Hi there! </div> `, styles: [] }) export class GreeterComponent implements OnInit { constructor() {} ngOnInit() {} }
Create a buildEl.sh file for build Angular Elemenet:
#!/bin/sh ng build ngelements --prod --output-hashing=none --single-bundle true --keep-polyfills true mv dist/ngelements/main.js demo/ngelements.js mv dist/ngelements/polyfills.js demo
The build script will:
- output two files: main.js and polyfill.js. main.js contains Angular elemenet, polyfill is mainly used for testing demo app, normally production app has polyfill already. So we don't need to include ployfill inside main.js
- output files locates in 'dist' folder under root.
- We copy main.js and polyfill.js to demo folder for testing our Angular elements and rename main,js to ngelement.js.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-03-18 [Ramda] Get Deeply Nested Properties Safely with Ramda's path and pathOr Functions
2016-03-18 [Angular 2] Using events and refs
2016-03-18 [Angular 2] Writing a Simple Angular 2 Component
2016-03-18 [Angular 2] WebStorm - Managing Imports