मेरे npm संकुल को अद्यतन करने के बाद, 'vue' मॉड्यूल से कुछ आयातों में त्रुटियाँ दिखाई देने लगीं:

TS2305: मॉड्यूल '"../../node_modules/vue/dist/vue"' का कोई निर्यातित सदस्य 'X' नहीं है

जहां एक्स अगला है टिक, ऑनमाउंटेड, रेफरी, वॉच इत्यादि। प्रोजेक्ट की सेवा करते समय, वीयू कहता है कि यह "संकलित करने में विफल" है। वेबस्टॉर्म वास्तव में निर्यात को पहचानता है, उन्हें सुझाव देता है और प्रकार दिखाता है, लेकिन त्रुटि को ध्यान में रखते हुए दिखाया जाता है। कुछ निर्यात जैसे कंप्यूटेड और डिफाइन कॉम्पोनेंट ठीक काम करते हैं।

मैंने जो कोशिश की है:

  • पहले इस्तेमाल किए गए Vue संस्करण "३.२.२" > "३.०.११" में रोलबैक। यह उपरोक्त प्रकार की त्रुटियों को गायब कर देता है, लेकिन ऐप पूरी तरह से काम करना बंद कर देता है, कंसोल में बहुत सारी TypeError: Object(...) is not a function त्रुटियां दिखाता है और ऐप को बिल्कुल भी प्रस्तुत नहीं करता है। टर्मिनल में, कुछ नई चेतावनियाँ पेश की गई हैं: "export 'X' (imported as '_X') was not found in 'vue' जहां X createElementBlock, createElementVNode, normalizeClass और normalizeStyle है।
  • अन्य निर्भरताओं को रोलबैक करें। मैंने जिन लोगों की कोशिश की उनमें से किसी ने भी दुर्भाग्य से समस्या को ठीक करने में मदद नहीं की।
  • 'vue' मॉड्यूल की संपूर्णता को मैन्युअल रूप से घोषित करें। हम shims-vue.d.ts में 'vue' मॉड्यूल निर्यात की घोषणा कर सकते हैं, और यह वास्तव में त्रुटियों को गायब कर देता है, हालांकि, यह एक भयानक, समय लेने वाली कार्यवाही की तरह लगता है, इसलिए यदि संभव हो तो मैं बेहतर समाधान का विकल्प चुनूंगा .

मेरी निर्भरता की पूरी सूची:

"dependencies": {
   "@capacitor/android": "3.0.0",
   "@capacitor/app": "1.0.0",
   "@capacitor/core": "3.0.0",
   "@capacitor/haptics": "1.0.0",
   "@capacitor/keyboard": "1.0.0",
   "@capacitor/push-notifications": "^1.0.3",
   "@google-pay/button-element": "^2.5.0",
   "@ionic-native/core": "^5.34.0",
   "@ionic-native/qr-scanner": "^5.35.0",
   "@ionic-native/vibration": "^5.34.0",
   "@ionic/vue": "^5.4.0",
   "@ionic/vue-router": "^5.4.0",
   "@j-t-mcc/vue3-chartjs": "^1.1.2",
   "chart.js": "^3.4.1",
   "chartjs-plugin-datalabels": "^2.0.0",
   "color": "^3.1.3",
   "cordova-plugin-background-mode": "^0.7.3",
   "cordova-plugin-device": "^2.0.3",
   "cordova-plugin-qrscanner": "^3.0.1",
   "core-js": "^3.6.5",
   "firebase": "^8.6.2",
   "numeral": "^2.0.6",
   "pug": "^3.0.2",
   "pug-plain-loader": "^1.1.0",
   "secure-ls": "^1.2.6",
   "uuid": "^8.3.2",
   "v-cupertino": "^1.2.4",
   "vue": "^3.2.0",
   "vue-chartjs": "^3.5.1",
   "vue-i18n": "^9.1.3",
   "vue-numerals": "^4.0.6",
   "vue-router": "^4.0.0-0",
   "vuex": "^4.0.1"
 },
 "devDependencies": {
   "@capacitor/cli": "3.0.0",
   "@types/jest": "^24.0.19",
   "@types/uuid": "^8.3.1",
   "@typescript-eslint/eslint-plugin": "^2.33.0",
   "@typescript-eslint/parser": "^2.33.0",
   "@vue/cli-plugin-babel": "~4.5.0",
   "@vue/cli-plugin-e2e-cypress": "~4.5.0",
   "@vue/cli-plugin-eslint": "^4.5.13",
   "@vue/cli-plugin-router": "~4.5.0",
   "@vue/cli-plugin-typescript": "~4.5.0",
   "@vue/cli-plugin-unit-jest": "~4.5.0",
   "@vue/cli-service": "~4.5.0",
   "@vue/compiler-sfc": "^3.0.0-0",
   "@vue/eslint-config-typescript": "^5.0.2",
   "@vue/test-utils": "^2.0.0-0",
   "eslint": "^6.7.2",
   "eslint-plugin-vue": "^7.0.0-0",
   "stylus": "^0.54.7",
   "stylus-loader": "^3.0.2",
   "typescript": "~3.9.3",
   "vue-jest": "^5.0.0-0"
 }

पुन: पेश करने के लिए लिंक

9
Vladimir Deev 15 अगस्त 2021, 13:43

2 जवाब

सबसे बढ़िया उत्तर

जैसा कि मैंने टिप्पणियों में उल्लेख किया है, मेरे मामले में, ट्रिक टाइपस्क्रिप्ट को संस्करण "3.xx" से "4.3.5" में अपडेट करना था (अन्य 4.xx संस्करणों को भी काम करना चाहिए, लेकिन मैंने उन्हें स्वयं नहीं किया है) . ऐसा क्यों है, मेरा सिद्धांत यह है कि कुछ vue- संबंधित निर्भरता अद्यतन के बाद टाइपस्क्रिप्ट के 3.x संस्करण के साथ असंगत हो गई।

1
Vladimir Deev 3 सितंबर 2021, 15:35

कंपोजीशन एपीआई से नामित निर्यात अनुपलब्ध हैं इसका मतलब है कि vue किसी स्थान पर Vue 2 है जिसमें केवल डिफ़ॉल्ट निर्यात है। चूंकि Vue 3 dependencies में है और लॉक फ़ाइल और node_modules दोनों को ताज़ा किया गया था, इसका मतलब है कि Vue 2 कुछ प्रत्यक्ष निर्भरता की नेस्टेड निर्भरता है।

लॉक फ़ाइल में समस्या की जांच की जानी चाहिए। यह दर्शाता है कि @vue/cli-plugin-unit-jest@4.5.13 vue-jest@3 पर निर्भर करता है जो vue@2 पर निर्भर करता है।

एक संभावित समाधान @vue/cli-plugin-unit-jest को नवीनतम संस्करण, next में अपग्रेड करना है। यही संभावना अन्य @vue/cli-* पैकेजों पर भी लागू होती है क्योंकि उनके पास मिलते-जुलते संस्करण हैं।

2
Estus Flask 15 अगस्त 2021, 13:53