How to create a library inside another library in Angular?












0















This should be a very trivial thing, because I don't find any reference about this or I don't know where and how to look for it. Let's say I have a scoped library core



@myscope/core



Now in this library I have a folder auth for authentication workflow.



When I want to use library in my App I import it using this:



import {AuthService} from @myscope/core



What I want to achieve, is to create a sub-library so I can use like that:



import {AuthService} from @myscope/core/auth



I know this is possible by creating a new path in the tsconfig, but I don't see that as a good resolution, because once I create a package out of this library, this path won't be delivered.



What is the best way to go?










share|improve this question























  • if @myscope/core is the main entry point for the public api of your lib, is there any reason that you are looking to expose secondary entry points?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • btw, how was your library created? nrwl workspace? angular-cli lib?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • the reason is that I'm exposing the state (ngrx reducers) of my auth library which belongs to core. for example: @angular/http and @angular/http/common. the library is in a nrwl workspace.

    – DAG
    Nov 22 '18 at 22:13
















0















This should be a very trivial thing, because I don't find any reference about this or I don't know where and how to look for it. Let's say I have a scoped library core



@myscope/core



Now in this library I have a folder auth for authentication workflow.



When I want to use library in my App I import it using this:



import {AuthService} from @myscope/core



What I want to achieve, is to create a sub-library so I can use like that:



import {AuthService} from @myscope/core/auth



I know this is possible by creating a new path in the tsconfig, but I don't see that as a good resolution, because once I create a package out of this library, this path won't be delivered.



What is the best way to go?










share|improve this question























  • if @myscope/core is the main entry point for the public api of your lib, is there any reason that you are looking to expose secondary entry points?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • btw, how was your library created? nrwl workspace? angular-cli lib?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • the reason is that I'm exposing the state (ngrx reducers) of my auth library which belongs to core. for example: @angular/http and @angular/http/common. the library is in a nrwl workspace.

    – DAG
    Nov 22 '18 at 22:13














0












0








0








This should be a very trivial thing, because I don't find any reference about this or I don't know where and how to look for it. Let's say I have a scoped library core



@myscope/core



Now in this library I have a folder auth for authentication workflow.



When I want to use library in my App I import it using this:



import {AuthService} from @myscope/core



What I want to achieve, is to create a sub-library so I can use like that:



import {AuthService} from @myscope/core/auth



I know this is possible by creating a new path in the tsconfig, but I don't see that as a good resolution, because once I create a package out of this library, this path won't be delivered.



What is the best way to go?










share|improve this question














This should be a very trivial thing, because I don't find any reference about this or I don't know where and how to look for it. Let's say I have a scoped library core



@myscope/core



Now in this library I have a folder auth for authentication workflow.



When I want to use library in my App I import it using this:



import {AuthService} from @myscope/core



What I want to achieve, is to create a sub-library so I can use like that:



import {AuthService} from @myscope/core/auth



I know this is possible by creating a new path in the tsconfig, but I don't see that as a good resolution, because once I create a package out of this library, this path won't be delivered.



What is the best way to go?







angular nrwl






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 22 '18 at 20:58









DAGDAG

94211335




94211335













  • if @myscope/core is the main entry point for the public api of your lib, is there any reason that you are looking to expose secondary entry points?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • btw, how was your library created? nrwl workspace? angular-cli lib?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • the reason is that I'm exposing the state (ngrx reducers) of my auth library which belongs to core. for example: @angular/http and @angular/http/common. the library is in a nrwl workspace.

    – DAG
    Nov 22 '18 at 22:13



















  • if @myscope/core is the main entry point for the public api of your lib, is there any reason that you are looking to expose secondary entry points?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • btw, how was your library created? nrwl workspace? angular-cli lib?

    – Jota.Toledo
    Nov 22 '18 at 22:07











  • the reason is that I'm exposing the state (ngrx reducers) of my auth library which belongs to core. for example: @angular/http and @angular/http/common. the library is in a nrwl workspace.

    – DAG
    Nov 22 '18 at 22:13

















if @myscope/core is the main entry point for the public api of your lib, is there any reason that you are looking to expose secondary entry points?

– Jota.Toledo
Nov 22 '18 at 22:07





if @myscope/core is the main entry point for the public api of your lib, is there any reason that you are looking to expose secondary entry points?

– Jota.Toledo
Nov 22 '18 at 22:07













btw, how was your library created? nrwl workspace? angular-cli lib?

– Jota.Toledo
Nov 22 '18 at 22:07





btw, how was your library created? nrwl workspace? angular-cli lib?

– Jota.Toledo
Nov 22 '18 at 22:07













the reason is that I'm exposing the state (ngrx reducers) of my auth library which belongs to core. for example: @angular/http and @angular/http/common. the library is in a nrwl workspace.

– DAG
Nov 22 '18 at 22:13





the reason is that I'm exposing the state (ngrx reducers) of my auth library which belongs to core. for example: @angular/http and @angular/http/common. the library is in a nrwl workspace.

– DAG
Nov 22 '18 at 22:13












1 Answer
1






active

oldest

votes


















1














Good question. With Angular 6, I tried these commands:



ng new sublibs
cd sublibs
ng generate library @myscope/core
ng generate library @myscope/core/auth
Project name "@myscope/core/auth" is invalid.


As you can see, it didn't work. But I didn't give up. I opened VS Code and copied sublibs/projects/myscope/core and pasted it inside itself then renamed sublibs/projects/myscope/core/core to sublibs/projects/myscope/core/auth. Then I went through all of the files in sublibs/projects/myscope/core/auth and modified the paths and names everywhere. This was mostly adding /auth or another ../ where appropriate. Then I renamed all of the files in sublibs/projects/myscope/core/auth/src/lib and changed the class names that start with Core so that they start with Auth. I didn't forget to change the package.json in sublibs/projects/myscope/core/auth and to add core/auth in angular.json by copying and pasting core and modifying it. After I was satisfied everything was renamed and changed appropriately, I entered the command:



ng build @myscope/auth


Here is the output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build @myscope/core
Building Angular Package
Building entry point '@myscope/core'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core
Building entry point '@myscope/core/auth'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core/auth
Built Angular Package!
- from: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsprojectsmyscopecore
- to: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsdistmyscopecore

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


Then I was able to enter this command:



ng generate application my-app


After that I was able to modify my-app's app.module like this:



import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

import { CoreModule } from '@myscope/core';
import { AuthModule } from '@myscope/core/auth';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AuthModule
],
providers: ,
bootstrap: [AppComponent]
})
export class AppModule { }


Then I built my-app:



ng build my-app


And I received this output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build my-app

Date: 2018-11-22T22:43:33.834Z
Hash: b686631b6cb537b9519c
Time: 10255ms
chunk {main} main.js, main.js.map (main) 20.2 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 249 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.22 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 16.7 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.01 MB [initial] [rendered]

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


So while I do not know how to use the Angular CLI to achieve this, I was able to do it manually.



See the repo: https://github.com/robertbrower-technologies/sublibs






share|improve this answer


























  • I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

    – DAG
    Nov 23 '18 at 8:59













  • I upvoted it anyway as this my be helpful for others as well...

    – DAG
    Nov 23 '18 at 9:00











  • Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

    – charith.arumapperuma
    2 days ago











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%2f53437912%2fhow-to-create-a-library-inside-another-library-in-angular%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














Good question. With Angular 6, I tried these commands:



ng new sublibs
cd sublibs
ng generate library @myscope/core
ng generate library @myscope/core/auth
Project name "@myscope/core/auth" is invalid.


As you can see, it didn't work. But I didn't give up. I opened VS Code and copied sublibs/projects/myscope/core and pasted it inside itself then renamed sublibs/projects/myscope/core/core to sublibs/projects/myscope/core/auth. Then I went through all of the files in sublibs/projects/myscope/core/auth and modified the paths and names everywhere. This was mostly adding /auth or another ../ where appropriate. Then I renamed all of the files in sublibs/projects/myscope/core/auth/src/lib and changed the class names that start with Core so that they start with Auth. I didn't forget to change the package.json in sublibs/projects/myscope/core/auth and to add core/auth in angular.json by copying and pasting core and modifying it. After I was satisfied everything was renamed and changed appropriately, I entered the command:



ng build @myscope/auth


Here is the output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build @myscope/core
Building Angular Package
Building entry point '@myscope/core'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core
Building entry point '@myscope/core/auth'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core/auth
Built Angular Package!
- from: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsprojectsmyscopecore
- to: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsdistmyscopecore

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


Then I was able to enter this command:



ng generate application my-app


After that I was able to modify my-app's app.module like this:



import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

import { CoreModule } from '@myscope/core';
import { AuthModule } from '@myscope/core/auth';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AuthModule
],
providers: ,
bootstrap: [AppComponent]
})
export class AppModule { }


Then I built my-app:



ng build my-app


And I received this output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build my-app

Date: 2018-11-22T22:43:33.834Z
Hash: b686631b6cb537b9519c
Time: 10255ms
chunk {main} main.js, main.js.map (main) 20.2 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 249 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.22 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 16.7 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.01 MB [initial] [rendered]

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


So while I do not know how to use the Angular CLI to achieve this, I was able to do it manually.



See the repo: https://github.com/robertbrower-technologies/sublibs






share|improve this answer


























  • I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

    – DAG
    Nov 23 '18 at 8:59













  • I upvoted it anyway as this my be helpful for others as well...

    – DAG
    Nov 23 '18 at 9:00











  • Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

    – charith.arumapperuma
    2 days ago
















1














Good question. With Angular 6, I tried these commands:



ng new sublibs
cd sublibs
ng generate library @myscope/core
ng generate library @myscope/core/auth
Project name "@myscope/core/auth" is invalid.


As you can see, it didn't work. But I didn't give up. I opened VS Code and copied sublibs/projects/myscope/core and pasted it inside itself then renamed sublibs/projects/myscope/core/core to sublibs/projects/myscope/core/auth. Then I went through all of the files in sublibs/projects/myscope/core/auth and modified the paths and names everywhere. This was mostly adding /auth or another ../ where appropriate. Then I renamed all of the files in sublibs/projects/myscope/core/auth/src/lib and changed the class names that start with Core so that they start with Auth. I didn't forget to change the package.json in sublibs/projects/myscope/core/auth and to add core/auth in angular.json by copying and pasting core and modifying it. After I was satisfied everything was renamed and changed appropriately, I entered the command:



ng build @myscope/auth


Here is the output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build @myscope/core
Building Angular Package
Building entry point '@myscope/core'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core
Building entry point '@myscope/core/auth'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core/auth
Built Angular Package!
- from: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsprojectsmyscopecore
- to: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsdistmyscopecore

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


Then I was able to enter this command:



ng generate application my-app


After that I was able to modify my-app's app.module like this:



import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

import { CoreModule } from '@myscope/core';
import { AuthModule } from '@myscope/core/auth';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AuthModule
],
providers: ,
bootstrap: [AppComponent]
})
export class AppModule { }


Then I built my-app:



ng build my-app


And I received this output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build my-app

Date: 2018-11-22T22:43:33.834Z
Hash: b686631b6cb537b9519c
Time: 10255ms
chunk {main} main.js, main.js.map (main) 20.2 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 249 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.22 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 16.7 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.01 MB [initial] [rendered]

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


So while I do not know how to use the Angular CLI to achieve this, I was able to do it manually.



See the repo: https://github.com/robertbrower-technologies/sublibs






share|improve this answer


























  • I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

    – DAG
    Nov 23 '18 at 8:59













  • I upvoted it anyway as this my be helpful for others as well...

    – DAG
    Nov 23 '18 at 9:00











  • Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

    – charith.arumapperuma
    2 days ago














1












1








1







Good question. With Angular 6, I tried these commands:



ng new sublibs
cd sublibs
ng generate library @myscope/core
ng generate library @myscope/core/auth
Project name "@myscope/core/auth" is invalid.


As you can see, it didn't work. But I didn't give up. I opened VS Code and copied sublibs/projects/myscope/core and pasted it inside itself then renamed sublibs/projects/myscope/core/core to sublibs/projects/myscope/core/auth. Then I went through all of the files in sublibs/projects/myscope/core/auth and modified the paths and names everywhere. This was mostly adding /auth or another ../ where appropriate. Then I renamed all of the files in sublibs/projects/myscope/core/auth/src/lib and changed the class names that start with Core so that they start with Auth. I didn't forget to change the package.json in sublibs/projects/myscope/core/auth and to add core/auth in angular.json by copying and pasting core and modifying it. After I was satisfied everything was renamed and changed appropriately, I entered the command:



ng build @myscope/auth


Here is the output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build @myscope/core
Building Angular Package
Building entry point '@myscope/core'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core
Building entry point '@myscope/core/auth'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core/auth
Built Angular Package!
- from: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsprojectsmyscopecore
- to: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsdistmyscopecore

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


Then I was able to enter this command:



ng generate application my-app


After that I was able to modify my-app's app.module like this:



import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

import { CoreModule } from '@myscope/core';
import { AuthModule } from '@myscope/core/auth';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AuthModule
],
providers: ,
bootstrap: [AppComponent]
})
export class AppModule { }


Then I built my-app:



ng build my-app


And I received this output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build my-app

Date: 2018-11-22T22:43:33.834Z
Hash: b686631b6cb537b9519c
Time: 10255ms
chunk {main} main.js, main.js.map (main) 20.2 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 249 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.22 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 16.7 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.01 MB [initial] [rendered]

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


So while I do not know how to use the Angular CLI to achieve this, I was able to do it manually.



See the repo: https://github.com/robertbrower-technologies/sublibs






share|improve this answer















Good question. With Angular 6, I tried these commands:



ng new sublibs
cd sublibs
ng generate library @myscope/core
ng generate library @myscope/core/auth
Project name "@myscope/core/auth" is invalid.


As you can see, it didn't work. But I didn't give up. I opened VS Code and copied sublibs/projects/myscope/core and pasted it inside itself then renamed sublibs/projects/myscope/core/core to sublibs/projects/myscope/core/auth. Then I went through all of the files in sublibs/projects/myscope/core/auth and modified the paths and names everywhere. This was mostly adding /auth or another ../ where appropriate. Then I renamed all of the files in sublibs/projects/myscope/core/auth/src/lib and changed the class names that start with Core so that they start with Auth. I didn't forget to change the package.json in sublibs/projects/myscope/core/auth and to add core/auth in angular.json by copying and pasting core and modifying it. After I was satisfied everything was renamed and changed appropriately, I entered the command:



ng build @myscope/auth


Here is the output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build @myscope/core
Building Angular Package
Building entry point '@myscope/core'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core
Building entry point '@myscope/core/auth'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
Minifying UMD bundle
Copying declaration files
Writing package metadata
Removing scripts section in package.json as it's considered a potential security vulnerability.
Built @myscope/core/auth
Built Angular Package!
- from: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsprojectsmyscopecore
- to: D:UsersRobertrobertbrower.technologiescustomersrobertbrower.technologiessublibsdistmyscopecore

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


Then I was able to enter this command:



ng generate application my-app


After that I was able to modify my-app's app.module like this:



import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

import { CoreModule } from '@myscope/core';
import { AuthModule } from '@myscope/core/auth';

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
AuthModule
],
providers: ,
bootstrap: [AppComponent]
})
export class AppModule { }


Then I built my-app:



ng build my-app


And I received this output:



Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$ ng build my-app

Date: 2018-11-22T22:43:33.834Z
Hash: b686631b6cb537b9519c
Time: 10255ms
chunk {main} main.js, main.js.map (main) 20.2 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 249 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.22 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 16.7 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.01 MB [initial] [rendered]

Robert@ROBERT-PC MINGW64 /d/Users/Robert/robertbrower.technologies/customers/robertbrower.technologies/sublibs
$


So while I do not know how to use the Angular CLI to achieve this, I was able to do it manually.



See the repo: https://github.com/robertbrower-technologies/sublibs







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 22 '18 at 22:57

























answered Nov 22 '18 at 22:48









Robert BrowerRobert Brower

312




312













  • I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

    – DAG
    Nov 23 '18 at 8:59













  • I upvoted it anyway as this my be helpful for others as well...

    – DAG
    Nov 23 '18 at 9:00











  • Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

    – charith.arumapperuma
    2 days ago



















  • I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

    – DAG
    Nov 23 '18 at 8:59













  • I upvoted it anyway as this my be helpful for others as well...

    – DAG
    Nov 23 '18 at 9:00











  • Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

    – charith.arumapperuma
    2 days ago

















I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

– DAG
Nov 23 '18 at 8:59







I think the main problem here you always gonna have problems if the cli changes and you'll have to update everytime things by hand. this is a workaround more than a real solution.I wonder how angular team does this.

– DAG
Nov 23 '18 at 8:59















I upvoted it anyway as this my be helpful for others as well...

– DAG
Nov 23 '18 at 9:00





I upvoted it anyway as this my be helpful for others as well...

– DAG
Nov 23 '18 at 9:00













Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

– charith.arumapperuma
2 days ago





Any luck finding a CLI solution to do this? Even angular repo has this structure. They must have something under the hood.. :)

– charith.arumapperuma
2 days ago




















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%2f53437912%2fhow-to-create-a-library-inside-another-library-in-angular%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







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini