我有一个Angular 4应用程序,我已使用CLI 1.5.4升级到Angular 5。我还有一个使用npm链接的共享库。升级后,我不得不将其添加到我的tsconfig.app.json中以再次获得CLI构建:
"include": [
"./**/*.ts",
"../node_modules/my-lib/src/**/*.ts",
"../node_modules/my-lib/index.ts",
"../node_modules/my-lib/ng2-icad-cf.ts"
],
成功构建后,访问localhost时出现以下错误:4200
NullInjectorError: No provider for InjectionToken LocaleId!
我在项目中找不到任何对LOCALE / LocaleId的引用。我怀疑链接库可能是问题,因为我对Http有相同的NullIjectorError(库使用Http,项目使用HttpClient)但是在将HttpClient添加到库的主模块之后它已经消失了,即使在恢复并删除它之后...很奇怪。
答案 0 :(得分:0)
我遇到了同样的问题。
首先,确保使用" peerDependencies"对于您的模块所依赖的任何Angular库,如下所述:https://github.com/angular/angular-cli/issues/3854#issuecomment-274344771
然后通过将--preserve-symlinks传递给Angular CLI来尝试运行/构建应用程序。例如:
setUniqueId
有关详细信息,请参阅https://github.com/angular/angular-cli/issues/8677#issuecomment-347885068。
此外,这可能有所帮助:https://github.com/angular/angular-cli/wiki/stories-linked-library
答案 1 :(得分:0)
在您的测试文件中导入LOCALE_ID模块,然后将其导出为GLOBAL_PROVIDER。
W(ESPN,A)·W(Nike,P) + W(ESPN,G)·W(Male,P) + W(Nike,G)·W(Male,A)