I\'m trying to create an Angular 6 library and use it in an Angular 6 app. I\'ve boiled it down to a minimal test case. (Update: since Angular 7 is out, I\'ve tried that as
The main problem is not why you are getting that warnings. The way you are accessing the library is not an ideal way. Let's look into a little better approach [Using Angular 7] with your own sample steps, which will not cause that issue in the first place.
ng new workspace # accept the defaults
ng new product # accept the defaults
cd workspace
ng generate library widgets
ng build --prod widgets # leave out "--prod" for Angular 7
cd ../product
ng build
cd ../workspace/dist/widgets/
npm pack
cp widgets-0.0.1.tgz ../../../product/
Open package.json file of product project, and under devDependencies add the following line:
"widgets": "file:./widgets-0.0.1.tgz",
Step 2 and Step 3 are required if you have the library locally. Otherwise, if your library is packed and publish into npm repository, then you don't need file: keyword. You can just mention the version like other dependencies.
Run npm install in product project.
Modify app.module.ts file:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { WidgetsModule } from 'widgets'; // new line
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
WidgetsModule // new line
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Now, run ng build in product project. It will run successfully.