'குறிப்பாளர் தேவை வரையறுக்கப்படவில்லை' பிழையை எவ்வாறு தீர்ப்பது?

Kurippalar Tevai Varaiyarukkappatavillai Pilaiyai Evvaru Tirppatu



Node.js ஒன்றும் இல்லை, அதன் இருப்பு ஒவ்வொரு தொகுதியாலும் வழங்கப்படும் தொகுதிகள் மற்றும் முறைகளைப் பொறுத்தது. இந்த தொகுதிக்கூறுகளுடன் பணிபுரிய, டெவலப்பர் முதலில் அதை நிறுவி, தற்போது செயல்படும் கோப்பில் இறக்குமதி செய்ய வேண்டும். தொகுதிகளை இறக்குமதி செய்வதற்காக, டெவலப்பர் இப்போது பயன்படுத்தும் அல்லது பயன்பாட்டு உரிமையாளர் உருவாக்க விரும்பும் ஜாவாஸ்கிரிப்ட்டின் பதிப்போடு குறிப்பாக இணைக்கப்பட்ட இரண்டு வழிகள் உள்ளன. இறக்குமதி செய்யும் போது பல பிழைகள் மற்றும் ஒரு பிரபலமான மற்றும் மிகவும் பொதுவான பிழையை எதிர்கொள்ள வாய்ப்பு உள்ளது ' தேவை() ” முறை விவரிக்கப்பட்டு தீர்க்கப்படுகிறது.

இந்த வழிகாட்டி 'குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை' பிழைகளைத் தீர்ப்பதற்கான செயல்முறையை விளக்குகிறது.

'குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை' பிழையை எவ்வாறு தீர்ப்பது?

திட்டத்தில் வெளிப்புற அல்லது உள்ளமைக்கப்பட்ட தொகுதிகளை இறக்குமதி செய்ய இரண்டு அணுகுமுறைகள் பயன்படுத்தப்படுகின்றன, இவை ' தேவை() 'முறை அல்லது' இறக்குமதி ” முக்கிய வார்த்தை. குறிப்பிடப்பட்ட ' குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை ஒரு பயனர் பயன்படுத்த முயற்சிக்கும் போது ' எதிர்கொள்ளும் ' தேவை() 'உள்ளே உள்ள முறை' ES தொகுதி ' வாய்ப்பு. கீழே குறிப்பிடப்பட்டுள்ள குறியீடு செயல்படுத்தப்படும் போது, ​​விவாதிக்கப்பட்ட பிழையானது node.js இல் உள்ள கன்சோலில் இவ்வாறு தோன்றும்:









'குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை' பிழை ஏற்படுவதற்கான காரணங்கள் மற்றும் அவற்றுக்கான தீர்வுகள் கீழே உள்ள பிரிவுகளில் விளக்கப்பட்டுள்ளன.



காரணம் 1: பயன்பாட்டின் வகை தொகுதிக்கு அமைக்கப்பட்டுள்ளது

உங்கள் பயன்பாடு குறிப்பிடப்பட்ட பிழையைக் காட்டினால், '' இன் மாற்றமே எளிதான மற்றும் நீண்ட கால தீர்வாகும். pack.json ' கோப்பு. விசை/மதிப்பு ஜோடியைத் தேடவும் ' முக்கிய 'இன்' வகை ' மற்றும் ஒதுக்கப்பட்ட மதிப்பு ' தொகுதி ”. இது முழு பயன்பாட்டின் சூழலையும் மட்டுப்படுத்துகிறது, இது பழைய பயன்பாட்டைத் தடுக்கிறது. CommonJS ”தொகுதிகள் மற்றும் முறைகள். இந்த விசை/மதிப்பு ஜோடியின் காட்சிப் பிரதிநிதித்துவம் இப்படித் தோன்றுகிறது:





'வகை' : 'தொகுதி' ,

தீர்வு: 'வகை' விசையை அகற்று

'' அகற்றுவதே தீர்வு. வகை 'node.js திட்டத்தில் இருந்து முக்கிய மற்றும் ஒதுக்கப்பட்ட மதிப்பு' pack.json ' கோப்பு. “package.json” கோப்பிலிருந்து அகற்றப்படுவது ES6 தொகுதியின் நோக்கத்தைப் பயன்படுத்துகிறது மற்றும் “require() முறையைச் செயல்பட வைக்கிறது. இப்போது, ​​அதே குறியீட்டை மீண்டும் இயக்கும்போது பிழை ஏற்படாது.



காரணம் 2: “.mjs இல் பணிபுரிதல் கோப்பு

' .mjs ” என்பது ஒரு தொகுதி ஜாவாஸ்கிரிப்ட் மூலக் குறியீடு கோப்பு. இது தொகுதி சூழலில் குறியீட்டைக் கொண்டுள்ளது 'இல் இல்லை CommonJS ” இது சிறந்த நிர்வாகத்திறனுக்காக குறியீட்டை பல கோப்புகளாகப் பிரிக்கிறது. ' தேவை() 'முறை' என்பதன் கீழ் உள்ளது CommonJS ”. அதனால்தான் 'தேவை' முறையானது '' இன் உள்ளே பயன்படுத்தப்படும்போது வரையறுக்கப்படாமல் போகும். .mjs 'கோப்பு நீட்டிப்பு மற்றும் குறிப்பிடப்பட்ட பிழையின் நிகழ்வுக்கு வழிவகுக்கிறது:

தீர்வு: கோப்பு நீட்டிப்பை “.cjs” ஆக மாற்றவும்

மட்டு ஜாவாஸ்கிரிப்ட் மூலக் குறியீட்டைப் போலவே கோப்பு நீட்டிப்பு ' .mjs ' கிடைக்கும். 'இன் நீட்டிப்பு .cjs 'இதற்காக வழங்கப்படுகிறது' CommonJS ”தொகுதிகள் மற்றும் பண்புகள். இந்தக் கோப்பு ஏற்கப்படவில்லை ' மட்டு '' போன்ற தொகுப்புகள் இறக்குமதி ” ஆனால் ES5 பதிப்புகளுடன் நன்றாக வேலை செய்கிறது. எங்கள் விஷயத்தில், கோப்பு நீட்டிப்பு மாற்றுவது '' தொடர்பான சிக்கலை தீர்க்கும் தேவை() ”முறை:

மாற்று அணுகுமுறை: 'இறக்குமதி/ஏற்றுமதி' ES6 அறிக்கையைப் பயன்படுத்தவும்

' தேவை() 'முறை வரையறுக்கப்பட்டு வழங்கப்படுகிறது' பொதுவான ஜேக்கள் ” மற்றும் ES5 (ECMAScript 5) இன் JavaScript பதிப்பு வரை ஏற்கத்தக்கது. இது 2009 இல் வெளியிடப்பட்டது மற்றும் பல சமீபத்திய தொகுதிகள் அதை ஆதரிக்கவில்லை அல்லது ES5 இல் சரியாக வேலை செய்யாததால் இப்போது வழக்கற்றுப் போய்விட்டது. அதைப் போலவே ' தேவை() 'முறையானது இப்போது மிகவும் உகந்ததாகவும் எளிதாகவும் மாற்றப்படுகிறது' இறக்குமதி ' அறிக்கைகள். இரண்டு நிறுவனங்களின் செயல்பாடும் ஒன்றுதான் ஆனால் 'இறக்குமதி' ஆனது சமீபத்திய தொழில்நுட்பம் மற்றும் அது வழங்கும் எளிமையின் காரணமாக மேல் விளிம்பைக் கொண்டுள்ளது.

இயல்புநிலை அல்லது வெளிப்புற தொகுதிகளுக்கு

கீழே உள்ள ஆர்ப்பாட்டத்தில், இயல்புநிலை அல்லது மூன்றாம் தரப்பு தொகுதியை இறக்குமதி செய்ய 'require()' முறைக்கு மாற்றாக 'இறக்குமதி' அறிக்கை பயன்படுத்தப்படுகிறது:

இறக்குமதி வாசிப்பு ஓபிஜே இருந்து 'படிக்கலை' ;

பணியகம். பதிவு ( வாசிப்பு ஓபிஜே ) ;

குறிப்பிடப்பட்ட குறியீட்டைத் தொகுத்த பிறகு, '' மூலம் செய்ய வேண்டிய அதே பணி தேவை() 'முறை செய்யப்படுகிறது மற்றும் ' குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை 'அதுபோல் தோன்றாது:

தனிப்பயன் கட்டமைக்கப்பட்ட தொகுதிகள்

' இறக்குமதி அதே அல்லது வெவ்வேறு கோப்பகங்களில் உள்ள பிற கோப்புகளிலிருந்து தனிப்பயன்-கட்டமைப்பு தொகுதிகள் அல்லது செயல்பாடுகளை 'இறக்குமதி' செய்ய 'அறிக்கை' பயன்படுத்தப்படுகிறது. பிற கோப்புகளின் செயல்பாடுகள் அல்லது மாறிகள் 'ஐப் பயன்படுத்தி ஏற்றுமதி செய்யப்படுகின்றன. ஏற்றுமதி ” முக்கிய வார்த்தை. உதாரணமாக, கீழே உள்ள குறியீடு துணுக்கைப் பார்வையிடவும், அதில் ஒரு செயல்பாடு மற்றும் ஒரு சீரற்ற மாறி மற்றொரு கோப்பிலிருந்து இறக்குமதி செய்யப்படும்:

app.js

நிலையான ஏற்றுமதி மாறக்கூடியது = 'இந்த வழிகாட்டி Linuxhint ஆல் வழங்கப்படுகிறது!' ;

நிலையான ஏற்றுமதி செயல்பாடு = ( ) => {

பணியகம். பதிவு ( ஏற்றுமதி மாறக்கூடியது ) ;

} ;

ஏற்றுமதி இயல்புநிலை ஏற்றுமதி செயல்பாடு ;

ஏற்றுமதி {

ஏற்றுமதி மாறக்கூடியது

} ;

மேலே உள்ள குறியீடு தொகுதியின் விளக்கம் பின்வருமாறு:

  • முதலில், சீரற்ற மாறி ' ஏற்றுமதி மாறக்கூடியது 'வரையறுக்கப்பட்ட மற்றும் அம்பு செயல்பாடு' ஏற்றுமதி செயல்பாடு() கன்சோலில் உருவாக்கப்பட்ட 'exportVariable' ஐ அச்சிடும் வகையில் உருவாக்கப்பட்டது.
  • 'இன் முக்கிய வார்த்தைகள் ஏற்றுமதி இயல்புநிலை 'மற்றும்' ஏற்றுமதி 'ஏற்றுமதி செய்ய பயன்படுத்தப்படுகிறது' ஏற்றுமதி செயல்பாடு() 'மற்றும்' ஏற்றுமதி மாறக்கூடியது ” கோப்பில் இருந்து பொருட்கள்.
  • இந்தக் கோப்பு இறக்குமதி செய்யப்படும் போது, ​​ஏற்றுமதி செய்யப்பட்ட செயல்பாடு மற்றும் மாறிகள் அங்கு பயன்படுத்தக் கிடைக்கும்.

index.js

'index.js' என்பது எங்கள் இரண்டாம் நிலை கோப்பாகும், இதில் ஏற்றுமதி செய்யப்பட்ட செயல்பாடு மற்றும் மாறி இறக்குமதி செய்யப்பட்டு பயன்படுத்தப்படும், அதில் கீழே குறிப்பிடப்பட்ட குறியீடு உள்ளது:

இறக்குமதி ஏற்றுமதி செயல்பாடு, { ஏற்றுமதி மாறக்கூடியது } இருந்து './app.js' ;

ஏற்றுமதி செயல்பாடு ( ) ;

பணியகம். பதிவு ( ஏற்றுமதி மாறக்கூடியது ) ;

மேலே உள்ள குறியீட்டில், ' இறக்குமதி இயல்புநிலையை இறக்குமதி செய்ய அறிக்கை பயன்படுத்தப்படுகிறது ஏற்றுமதி செயல்பாடு() 'மற்றும் மாறி' ஏற்றுமதி மாறக்கூடியது ' இருந்து ' app.js ' கோப்பு.

பின்னர், இறக்குமதி செய்யப்பட்ட இரு நிறுவனங்களும் செயல்படுத்தப்பட்டு சரிபார்ப்பு நோக்கங்களுக்காக கன்சோலில் காட்டப்படும்.

இப்போது, ​​பிரதானத்தை இயக்கவும் ' index.js கீழே கூறப்பட்ட கட்டளையைப் பயன்படுத்தி கோப்பு:

முனை குறியீடு. js

உருவாக்கப்பட்ட வெளியீடு, இறக்குமதி செய்யப்பட்ட கூறுகள் '' ஏற்படாமல் சரியாக வேலை செய்கின்றன என்பதைக் காட்டுகிறது. குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை ”பிழை:

குறிப்பிட்ட பிழையைத் தீர்ப்பது பற்றியது அவ்வளவுதான்.

முடிவுரை

தீர்க்க ' குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை 'பிழை, நீக்கு' வகை 'விசை' மதிப்பைக் கொண்டுள்ளது தொகுதி ' இருந்து ' pack.json ” அல்லது தற்போது பணிபுரியும் கோப்பு நீட்டிப்பை மாற்றவும் “ .cjs ”. நீங்கள் ES6 மாடுலர் பதிப்பில் வேலை செய்ய விரும்பினால், '' தேவை() 'முறையைப் பயன்படுத்தவும்' இறக்குமதி ” அறிக்கைகள் அணுகுமுறை. இந்த வழிகாட்டி 'தீர்க்க சாத்தியமான திருத்தங்களை விளக்கியுள்ளது. குறிப்புப் பிழை: தேவை வரையறுக்கப்படவில்லை node.js இல் 'பிழை'