Code Monkey home page Code Monkey logo

extension-mechanism-demo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

extension-mechanism-demo's Issues

Warnings during build and in console

Hi,

First off, incredible demo and great talk at NG Conf. This has all been super helpful in trying to create the plugin / platform architecture I'm hoping to accomplish. I was just wondering if you had a solution for the warnings I'm seeing when building your demo as they are tied directly to how you are importing and setting the SystemJS variable which seems to be one of the linchpins of getting this to work.

WARNING in ./node_modules/@angular/core/esm5/core.js
6570:15-36 Critical dependency: the request of a dependency is an expression
@ ./node_modules/@angular/core/esm5/core.js
@ ./src/vendors.ts
@ multi (webpack)-dev-server/client?http://localhost:8081 ./src/vendors.ts

WARNING in ./node_modules/@angular/core/esm5/core.js
6590:15-102 Critical dependency: the request of a dependency is an expression
@ ./node_modules/@angular/core/esm5/core.js
@ ./src/vendors.ts
@ multi (webpack)-dev-server/client?http://localhost:8081 ./src/vendors.ts

Thank you!

Load extension that uses third party module (primeNg)

Hi @MaximusK,

I appreciate your solution but there are some limitations:
I forked your project, i run it => it works well
But if i add any third party module to the "extension module", the loader fail when trying to create the component.
In my case, i added primeng library and i used the primeng button in my extension component template.
When i try to import the extension, i got this error:

ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[NgClass -> IterableDiffers]: StaticInjectorError(Platform: core)[NgClass -> IterableDiffers]: NullInjectorError: No provider for IterableDiffers! Error: StaticInjectorError(AppModule)[NgClass -> IterableDiffers]: StaticInjectorError(Platform: core)[NgClass -> IterableDiffers]: NullInjectorError: No provider for IterableDiffers! at _NullInjector.get (app.bundle.js:3153)

I'm developing a modular web IDE using angular and nodeJs. I have to provide an extension loading mechanism in order to allow users to plug only plugins that they need.
The extension in my case are some rich angular screens

Load Extension with Angular modules

Hi @MaximusK ,

I've run into an issue using the extension mechanism and I've made a sample repo library up that demonstrates the issue:
https://github.com/nmarra/extension-angular-issue

I'm trying to add some simple Angular code into the extension code ( *ngIf ), which requires me to import the CommonModule. I've tried multiple solutions to get this working but the Platform module constantly throws the below error when loading the Extension module:

ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[NgIf -> ViewContainerRef]:
StaticInjectorError(Platform: core)[NgIf -> ViewContainerRef]:
NullInjectorError: No provider for ViewContainerRef!

If there is any way you could spend some time looking at this and explain what I need to do to get it working I'd really appreciate it. I'm trying to build out a bigger extension example that has services and may include 3rd party libraries, but immediately ran into this roadblock when trying to use some simple Angular code.

Thank you for any help!

AOT support

Hi is there a way to get the "platform" building with AOT? I tried myself but I am getting this error message: "Unexpected value 'Lt' imported by the module 'WidgetModule'. Please add a @NgModule annotation."

I had to add some providers to the app as follows:

export function createCompiler(compilerFactory: CompilerFactory) {
  return compilerFactory.createCompiler();
}

...

  providers: [
    { provide: COMPILER_OPTIONS, useValue: {}, multi: true },
    {
      provide: CompilerFactory,
      useClass: JitCompilerFactory,
      deps: [COMPILER_OPTIONS]
    },
    { provide: Compiler, useFactory: createCompiler, deps: [CompilerFactory] }
  ]

Troubles with modules in extension.

Hi, thanks for share the solution. I was found very useful. But, When I use modules (for example, HttpClient) in extension, when Compile and run it, the principal aplication throw a Exception 'No provider for Injector'. Do you have a idea what's could be?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.