/ / Получаване на грешка: StaticInjectorError [InjectionToken DocumentToken] NullInjectorError: Няма доставчик за InjectionToken DocumentToken - ъглова, печатна, уеб пакети

Получаване на грешка: StaticInjectorError [InjectionToken DocumentToken] NullInjectorError: Няма доставчик за InjectionToken DocumentToken - ъглова, печатна, уеб пакети

Аз актуализирам приложението си от ъглово 2.1.2 до ъглово 5.0.0. и получаване на тази грешка.

Грешка: StaticInjectorError [InjectionToken DocumentToken]: n StaticInjectorError [InjectionToken DocumentToken]: n
NullInjectorError: Няма доставчик за InjectionToken DocumentToken! N
NullInjectorError: Няма доставчик за InjectionToken DocumentToken! N
в _NullInjector.получавам (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:962:19)n при решение Тоцен (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:1250:24)n в tryResolveToken (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:1192:16)n в StaticInjector.get (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:1063:20)n при решение Тоцен (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:1250:24)n в tryResolveToken (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:1192:16)n в StaticInjector.get (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:1063:20)n при resolveNgModuleDep (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:10623:25)n в _callFactory (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:10693:32)n в _createProviderInstance $ 1 (/Users/temp/Documents/GitHub/sample-app/node_modules/@angular/core/bundles/core.umd.js:10637:26) ",

Това не е ъглово приложение CLI, така че създадох репо-сделка за минимално възпроизвеждане на проблема. Моля, направете справка със следното връзка

Се отнасят README.md за изграждане и обслужване на приложението.

Използване на уеб пакета: 3.11.0 За изграждане на това приложение. Не е в състояние да разбере проблема.

Отговори:

0 за отговор № 1

Въпросът тук е, че вашият сървър index.js пакет съдържа @angular/core код. Това означава, че когато стартирате код, имате две различни функции InjectionToken , които създават два различни случая DocumentToken.

Възможна корекция е да се промени externals опция в

webpack.config.json

export var serverConfig = {
...
externals: includeClientPackages(
/@angularclass|@angular|angular2-|.....
),
externals: angularExternals(),
... } ... export function angularExternals() { return function (context, request, callback) { if (request.startsWith("@angular/")) { return callback(null, { root: ["ng", request.replace(/^@angular//, "")], commonjs: request, commonjs2: request, amd: request }); } callback(); }; }

След това пакетът index.js няма да съдържа дублиращ се код @angular/core така че ъгловата ще успее да разреши зависимостта.