npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2025 – Pkg Stats / Ryan Hefner

p3x-angular-compile

v2025.4.122

Published

πŸ†– Angular Dynamic Compile - Convert strings to Angular components

Readme

NPM Donate for PatrikX3 / P3X Contact Corifeus / P3X Corifeus @ Facebook Uptime ratio (90 days)

πŸ†– Angular Dynamic Compile - Convert strings to Angular components v2025.4.122

🌌 Bugs are evidentβ„’ - MATRIX️
🚧 This project is under active development!
πŸ“’ We welcome your feedback and contributions.

NodeJS LTS is supported

πŸ› οΈ Built on NodeJs version

v22.13.1

πŸ“¦ Built on Angular

19.1.4

πŸ“ Description

WARNING

Angular has changed, so it stricts many things for dynamic compilation. The only solution right now, is to simple copy the code into your code and it will work (like on https://angular-compile.corifeus.com/).

The code you just copy into your project is here:
https://github.com/patrikx3/angular-compile/tree/master/projects/angular-compile/src/lib

The package on the NPM is the pure TypeScript code. Not built using Angular.

Use case

Dynamically compile standard strings to fully functional Angular components. Supports imports, exports, and standard context.

Install

npm install --save p3x-angular-compile
# or
yarn add p3x-angular-compile

Check out how it works and code

https://angular-compile.corifeus.com

https://github.com/patrikx3/angular-compile/blob/master/src/app/app.component.ts

IMPORTANT

Make sure AOT is disabled in the angular.json:

{ 
    "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/workspace",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
            
            // make sure it is false
            "aot": false,

            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.scss"
            ],
            "scripts": []
          }
    }
}

Minimum build requirement arguments

ng build --aot=false --build-optimizer=false

Usage

import { CompileModule} from "p3x-angular-compile"

// the module settings
@NgModule({
    imports: [
        CorifeusWebMaterialModule, // Optional
        CompileModule, // Required
    ],
    declarations: [
        Page,
    ],
    providers: [
    ],
    bootstrap: [ Page ]
})
export class Module { };

Template

 <span 
 
 <!--- Not required -->
 *ngIf="isEnabled" 

 <!--- Required -->
 [p3x-compile]="template"

 <!--- Required -->
 [p3x-compile-ctx]="this"

 <!--- Not required, will just throw the component's exception if not provided -->
 [p3x-compile-error-handler]="handleCompileErrorHandler"

 <!--- Not required -->
 [p3x-compile-module]="dataModule"
 >     
</span>

Code

// A page example
export class Page {
    
    isEnabled: boolean = true;
    
    dataModule : any =  {
        //schemas: [CUSTOM_ELEMENTS_SCHEMA],
        //declarations: [],
        imports: [
            MatButtonModule
        ],
        exports: [       
        ]
    }

    template: string = "<button mat-button mat-raised-button (click)="context.alert()">Dynamic template</button>";

    handleCompileErrorHandler(error: Error) {
        console.error(error)
    }

    alert() {
        alert('ok');
    }
}

Options

Reference for the Angular module settings which are available.

Dev environment end test

npm install -g yarn
git clone https://github.com/patrikx3/angular-compile.git
cd angular-compile
npm install
npm run start

http://localhost:4200

Errors

Type x is part of the declarations of 2 modules

Basically, you need a shared component.

https://stackoverflow.com/questions/42993580/angular-2-type-childcomponent-is-a-part-of-the-declarations-of-2-modules-par

AOT + JIT

Since Angular 5.x.x +

We cannot use AOT + JIT at once.

Info

https://github.com/angular/angular/issues/20156#issuecomment-341767899

On the issue, you can see:

To reduce the payload, we do not ship the compiler in AOT.

So right now, it is not possible.

Although, there are some hacks, but you are on your own...
https://github.com/angular/angular/issues/20156#issuecomment-468686933

Size

If you want very small bundle, use gzip.


πŸš€ Quick and Affordable Web Development Services

If you want to quickly and affordably develop your next digital project, visit corifeus.eu for expert solutions tailored to your needs.


🌐 Powerful Online Networking Tool

Discover the powerful and free online networking tool at network.corifeus.com.

πŸ†“ Free
Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management.
Additionally, it offers tools for:

  • πŸ“‘ Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability.
  • πŸ“Š Status page management to track uptime, performance, and incidents in real time with customizable dashboards.

All these features are completely free to use.


❀️ Support Our Open-Source Project

If you appreciate our work, consider ⭐ starring this repository or πŸ’° making a donation to support server maintenance and ongoing development. Your support means the world to usβ€”thank you!


🌍 About My Domains

All my domains, including patrikx3.com, corifeus.eu, and corifeus.com, are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional.


πŸ“ˆ Versioning Policy

Version Structure: We follow a Major.Minor.Patch versioning scheme:

  • Major: πŸ“… Corresponds to the current year.
  • Minor: πŸŒ“ Set as 4 for releases from January to June, and 10 for July to December.
  • Patch: πŸ”§ Incremental, updated with each build.

🚨 Important Changes: Any breaking changes are prominently noted in the readme to keep you informed.


P3X-ANGULAR-COMPILE Build v2025.4.122

NPM Donate for PatrikX3 / P3X Contact Corifeus / P3X Like Corifeus @ Facebook