Аз актуализирам приложението си от ъглово 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
така че ъгловата ще успее да разреши зависимостта.