कोणीय 8 - आलसी लोडिंग मॉड्यूल: त्रुटि TS1323: डायनेमिक आयात केवल तभी समर्थित है जब '--मॉडल' ध्वज 'कॉमनज' या 'एस्केनट' हो


107

जब मैंने 7 से कोणीय 8 तक कोणीय अद्यतन किया, तो आलसी लोडिंग मॉड्यूल के लिए त्रुटि हो रही है

मैंने विकल्पों की कोशिश की है, जो कि कोणीय उन्नयन गाइड में हैं

नीचे किए गए परिवर्तन:

इससे पहले

    loadChildren: '../feature/path/sample- 
                         tage.module#SameTagModule'

उपरांत

   loadChildren: () => import('../feature/path/sample- 
                      tags.module').then(m => m.CreateLinksModule)

त्रुटि TS1323: डायनामिक आयात का केवल तभी समर्थन किया जाता है जब '--module' ध्वज 'कॉमनज' या 'esNext' होता है।

जवाबों:


205

आप डायनेमिक आयात का उपयोग कर रहे हैं, इसलिए आपको अपने कोड को esnextमॉड्यूल पर लक्षित करने के लिए अपने tsconfig.json को इस तरह बदलना होगा

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "esnext", // add this line
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

यह भी सुनिश्चित करें कि tsconfig.app.json की जाँच करें और न ही मॉड्यूल और लक्ष्य विन्यास कुछ इस तरह से करें

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "src/test.ts",
    "src/**/*.spec.ts"
  ]
}

4
ng newयह डिफ़ॉल्ट रूप से उपयोग नहीं करता है। क्या कोई कारण है?
हेलजेट

2
यह एज, क्रोम, फ़ायरफ़ॉक्स और IE11 में काम करने लगता है जब मैं पॉलीफ़िल में IE11 सेक्शन को अनफिल्ट करता हूँ तो मुझे खुशी होती है।
हेलजेट

12
मुझे "module": "es2015"अपनी tsconfig.app.jsonफाइल से लाइन
हटानी पड़ी

5
@ranbuch, मुझे भी यही समस्या थी लेकिन लाइन नहीं हटाई, मैंने इसे भी बदल दिया "module": "esnext"
अल्फा ब्रावो

tsconfig.json फ़ाइल को अपडेट करने के बाद भी उसी समस्या का सामना करना पड़ रहा है
गौरव अग्रवाल

25

बस @ टोनी के awser को जोड़ने के लिए, आपको tsconfig.app.json में भी ऐसा ही करना होगा ("मॉड्यूल": "esnext") में बदलाव करना होगा। मेरे मामले में tsconfig.json पहले से ही मॉड्यूल के रूप में esnext का उपयोग कर रहा था, लेकिन tsconfig.app.json अभी भी es2015 का उपयोग कर रहा था और इस त्रुटि का कारण बना।


3
हम दोनों फाइलों में "मॉड्यूल": "एसनेक्स्ट" जोड़ने से बच सकते हैं, हम इसे tsconfig.json में डाल सकते हैं लेकिन tsconfig.app.json में नहीं, क्योंकि यह पहले से tsconfig.json को बढ़ा रहा है।
राजूपेडा

15

बस अपने अनुभव को @ टोनी के उत्तर में जोड़ना चाहता हूं। tsconfig.jsonइसे बदलने के बाद भी अभी भी एक त्रुटि (लाल रेखांकन) दिखाई दी। संपादक को फिर से खोलने के बाद (मैंने VSCode का उपयोग किया) क्या मैंने देखा कि लाल रेखा गायब हो गई।


मेरे पास tsconfig.app.json फ़ाइल नहीं है। क्या मुझे एक बनाना चाहिए?
मार्क

हाँ, कृपया इसे देखें। stackoverflow.com/questions/36916989/…
ताई जिनयुआन

बहुत मददगार था। धन्यवाद :)
प्रवीण कुमार पलाई

1
आईडिया इंटेलीज में भी मेरे पास यही मुद्दा था। आपको प्रोजेक्ट को फिर से खोलना होगा।
NieMaszNic

हाँ। आपने मेरा दिन बचाया।
शैलेश प्रतापवार

12

मुझे लगता है कि ऐसा करने का उचित तरीका इसके tsconfig.app.jsonबजाय समायोजित करना है tsconfig.json

tsconfig.app.json

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": "./",
    "module": "esnext",
    "types": []
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

tsconfig.app.jsonटाइपस्क्रिप्ट कॉन्फ़िगरेशन फ़ाइल उस एप्लिकेशन के लिए विशिष्ट है जो कोणीय कार्यक्षेत्र की जड़ के नीचे बैठता है । यह tsconfig.app.jsonमौजूद है कि यदि आप एक कोणीय कार्यक्षेत्र बना रहे हैं, जिसमें कई ऐप्स हैं, तो आप प्रत्येक एप्लिकेशन के लिए अलग-अलग टाइपस्क्रिप्ट कॉन्फ़िगरेशन को समायोजित कर सकते हैं, बिना अनावश्यक कॉन्फ़िगरेशन गुणों को लिखने के लिए जो एप्लिकेशन (इसलिए extendsसंपत्ति) के बीच ओवरलैप होते हैं।

तकनीकी रूप से, आपको इसकी आवश्यकता नहीं है tsconfig.app.json। आप इसे हटा, तो आप जगह करना होगा "module": "esnext"में tsconfig.json। यदि आप इसे वहां रखते हैं, तो यह पूर्वता पर ले जाएगा tsconfig.json, इसलिए आपको केवल "module":"esnext"लाइन जोड़ने की आवश्यकता है tsconfig.app.json


हां, मुझे tsconfig.json और tsconfig.app.json
RDV

0

मैं निम्न चरणों का पालन करके इस त्रुटि को हल करता हूं चरण 1: "मॉड्यूल": "es2015" से "मॉड्यूल": tsconfig.json में "AMD"

स्टेप 2: ऐप रूट डायरेक्टरी में एक नई फाइल tsconfig.app.json बनाएं, टोनी नोग की कॉपी कोड पेस्ट करें और फिर इस समस्या को हल किया जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.