I have an Angular 4 app that I have upgraded to Angular 5 with CLI 1.5.4. I also have a shared library using npm link. After upgrading I had to add this to my tsconfig.app.json to get the CLI building again:
"include": [
"./**/*.ts",
"../node_modules/my-lib/src/**/*.ts",
"../node_modules/my-lib/index.ts",
"../node_modules/my-lib/ng2-icad-cf.ts"
],
After a successful build, I am presented with the following error when visiting localhost:4200
NullInjectorError: No provider for InjectionToken LocaleId!
I could not find any references to LOCALE / LocaleId in my project. I suspect the linked library might be the issue as I had the same NullIjectorError for Http (library uses Http, project uses HttpClient) but it has since disappeared after adding HttpClient to the library's main module, even after reverting back and removing it... very strange.
I experienced the same issue.
First, make sure to use "peerDependencies" for any Angular libraries that your module depends on as described here: https://github.com/angular/angular-cli/issues/3854#issuecomment-274344771
Then try running / building the app by passing --preserve-symlinks to Angular CLI. For example:
ng serve --preserve-symlinks
See https://github.com/angular/angular-cli/issues/8677#issuecomment-347885068 for more details.
Also, this may help: https://github.com/angular/angular-cli/wiki/stories-linked-library