/ / त्रुटि प्राप्त करना: StaticInjectorError [InjectionToken DocumentToken] | NullInjectorError: InjectionToken DocumentToken के लिए कोई प्रदाता - कोणीय, टाइपस्क्रिप्ट, वेबपैक

त्रुटि प्राप्त करना: StaticInjectorError [इंजेक्शन टोकन दस्तावेज़ टोकन] | NullInjectorError: इंजेक्शन टोकन दस्तावेज़ टोकन के लिए कोई प्रदाता - कोणीय, टाइपस्क्रिप्ट, वेबपैक

मैं अपने ऐप को कोणीय 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 atNNMMuleuleDep (/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) ",

यह एक कोणीय सीएलआई ऐप नहीं है, इसलिए मैंने इस मुद्दे के न्यूनतम प्रजनन के लिए एक रेपो बनाया है। कृपया निम्नलिखित देखें संपर्क

देखें 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 बंडल जीता "t से डुप्लिकेट कोड होते हैं @angular/core ताकि कोणीय सफलतापूर्वक निर्भरता का समाधान कर सकेगा।