热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UsengxbuildplustocompileAngularElements

WecantreatAngularElementaseachstandlonelibandcompileeachAngularelementspreatly.Too

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.

,


   



推荐阅读
author-avatar
夜翊灬瞳_398
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有