Angular Library failed to export class - Angular6












0















I have created a new Angular 6 Library. This Library has a Model called User:



export class User {
public id: string;
public username: string;

constructor(id: string,
username: string) {
this.id = id;
this.username = username;
}
}


I am using the library in another angular app, everything works fine. But when I try to use the model:



export class AppComponent {
public user: User;

constructor() {
this.user = new User('1', 'my user');
}
}


I am getting this error:



Module not found: Error: Can't resolve 'my-lib/lib/models/user.model' in 'C:my-appsrcapp'


The intellisense found it but I am still receiving this error.



AppModule:



@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
UserModule,
],
bootstrap: [AppComponent]
})


anybody has an idea? Thanks!










share|improve this question


















  • 1





    I suggest inside your lib you create a new file public_api.ts within my-lib/ in which you export the classes you want to be publically available. You can do that by adding export * from './lib/models/user.model for each model, you want to export.

    – Philipp Meissner
    Nov 23 '18 at 15:22











  • Perfect! it works for me, thanks!

    – Samy Sammour
    Nov 23 '18 at 16:50











  • Great, I will prepare an official answer quickly. I was on phone when I wrote the comment.

    – Philipp Meissner
    Nov 23 '18 at 16:55
















0















I have created a new Angular 6 Library. This Library has a Model called User:



export class User {
public id: string;
public username: string;

constructor(id: string,
username: string) {
this.id = id;
this.username = username;
}
}


I am using the library in another angular app, everything works fine. But when I try to use the model:



export class AppComponent {
public user: User;

constructor() {
this.user = new User('1', 'my user');
}
}


I am getting this error:



Module not found: Error: Can't resolve 'my-lib/lib/models/user.model' in 'C:my-appsrcapp'


The intellisense found it but I am still receiving this error.



AppModule:



@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
UserModule,
],
bootstrap: [AppComponent]
})


anybody has an idea? Thanks!










share|improve this question


















  • 1





    I suggest inside your lib you create a new file public_api.ts within my-lib/ in which you export the classes you want to be publically available. You can do that by adding export * from './lib/models/user.model for each model, you want to export.

    – Philipp Meissner
    Nov 23 '18 at 15:22











  • Perfect! it works for me, thanks!

    – Samy Sammour
    Nov 23 '18 at 16:50











  • Great, I will prepare an official answer quickly. I was on phone when I wrote the comment.

    – Philipp Meissner
    Nov 23 '18 at 16:55














0












0








0








I have created a new Angular 6 Library. This Library has a Model called User:



export class User {
public id: string;
public username: string;

constructor(id: string,
username: string) {
this.id = id;
this.username = username;
}
}


I am using the library in another angular app, everything works fine. But when I try to use the model:



export class AppComponent {
public user: User;

constructor() {
this.user = new User('1', 'my user');
}
}


I am getting this error:



Module not found: Error: Can't resolve 'my-lib/lib/models/user.model' in 'C:my-appsrcapp'


The intellisense found it but I am still receiving this error.



AppModule:



@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
UserModule,
],
bootstrap: [AppComponent]
})


anybody has an idea? Thanks!










share|improve this question














I have created a new Angular 6 Library. This Library has a Model called User:



export class User {
public id: string;
public username: string;

constructor(id: string,
username: string) {
this.id = id;
this.username = username;
}
}


I am using the library in another angular app, everything works fine. But when I try to use the model:



export class AppComponent {
public user: User;

constructor() {
this.user = new User('1', 'my user');
}
}


I am getting this error:



Module not found: Error: Can't resolve 'my-lib/lib/models/user.model' in 'C:my-appsrcapp'


The intellisense found it but I am still receiving this error.



AppModule:



@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
UserModule,
],
bootstrap: [AppComponent]
})


anybody has an idea? Thanks!







model angular6 angular-library






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 23 '18 at 15:03









Samy SammourSamy Sammour

5571930




5571930








  • 1





    I suggest inside your lib you create a new file public_api.ts within my-lib/ in which you export the classes you want to be publically available. You can do that by adding export * from './lib/models/user.model for each model, you want to export.

    – Philipp Meissner
    Nov 23 '18 at 15:22











  • Perfect! it works for me, thanks!

    – Samy Sammour
    Nov 23 '18 at 16:50











  • Great, I will prepare an official answer quickly. I was on phone when I wrote the comment.

    – Philipp Meissner
    Nov 23 '18 at 16:55














  • 1





    I suggest inside your lib you create a new file public_api.ts within my-lib/ in which you export the classes you want to be publically available. You can do that by adding export * from './lib/models/user.model for each model, you want to export.

    – Philipp Meissner
    Nov 23 '18 at 15:22











  • Perfect! it works for me, thanks!

    – Samy Sammour
    Nov 23 '18 at 16:50











  • Great, I will prepare an official answer quickly. I was on phone when I wrote the comment.

    – Philipp Meissner
    Nov 23 '18 at 16:55








1




1





I suggest inside your lib you create a new file public_api.ts within my-lib/ in which you export the classes you want to be publically available. You can do that by adding export * from './lib/models/user.model for each model, you want to export.

– Philipp Meissner
Nov 23 '18 at 15:22





I suggest inside your lib you create a new file public_api.ts within my-lib/ in which you export the classes you want to be publically available. You can do that by adding export * from './lib/models/user.model for each model, you want to export.

– Philipp Meissner
Nov 23 '18 at 15:22













Perfect! it works for me, thanks!

– Samy Sammour
Nov 23 '18 at 16:50





Perfect! it works for me, thanks!

– Samy Sammour
Nov 23 '18 at 16:50













Great, I will prepare an official answer quickly. I was on phone when I wrote the comment.

– Philipp Meissner
Nov 23 '18 at 16:55





Great, I will prepare an official answer quickly. I was on phone when I wrote the comment.

– Philipp Meissner
Nov 23 '18 at 16:55












1 Answer
1






active

oldest

votes


















1














The problem is that you did not export the model to the outside world of your library.
In order to do that I suggest an additional file called public_api.ts in which you export the model explicitly.
Place it right into the root of your library my-lib.



Then, fill the file up with explicit exports like so:



export * from './lib/models/user.model'


That should do it.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448981%2fangular-library-failed-to-export-class-angular6%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    The problem is that you did not export the model to the outside world of your library.
    In order to do that I suggest an additional file called public_api.ts in which you export the model explicitly.
    Place it right into the root of your library my-lib.



    Then, fill the file up with explicit exports like so:



    export * from './lib/models/user.model'


    That should do it.






    share|improve this answer




























      1














      The problem is that you did not export the model to the outside world of your library.
      In order to do that I suggest an additional file called public_api.ts in which you export the model explicitly.
      Place it right into the root of your library my-lib.



      Then, fill the file up with explicit exports like so:



      export * from './lib/models/user.model'


      That should do it.






      share|improve this answer


























        1












        1








        1







        The problem is that you did not export the model to the outside world of your library.
        In order to do that I suggest an additional file called public_api.ts in which you export the model explicitly.
        Place it right into the root of your library my-lib.



        Then, fill the file up with explicit exports like so:



        export * from './lib/models/user.model'


        That should do it.






        share|improve this answer













        The problem is that you did not export the model to the outside world of your library.
        In order to do that I suggest an additional file called public_api.ts in which you export the model explicitly.
        Place it right into the root of your library my-lib.



        Then, fill the file up with explicit exports like so:



        export * from './lib/models/user.model'


        That should do it.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 23 '18 at 16:58









        Philipp MeissnerPhilipp Meissner

        1,93011532




        1,93011532
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448981%2fangular-library-failed-to-export-class-angular6%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wiesbaden

            To store a contact into the json file from server.js file using a class in NodeJS

            Marschland