ಕನ್ನಡ

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್‌ನ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ. ಕ್ಲಾಸಿಕ್, ನೋಡ್ ತಂತ್ರಗಳು, baseUrl, paths ಮತ್ತು ಸಂಕೀರ್ಣ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ಇಂಪೋರ್ಟ್ ಪಥ ನಿರ್ವಹಣೆಯ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಕಲಿಯಿರಿ.

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್: ಇಂಪೋರ್ಟ್ ಪಥ ತಂತ್ರಗಳನ್ನು ಸರಳೀಕರಿಸುವುದು

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ವ್ಯವಸ್ಥೆಯು ಸ್ಕೇಲೆಬಲ್ ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ಒಂದು ನಿರ್ಣಾಯಕ ಅಂಶವಾಗಿದೆ. ಇಂಪೋರ್ಟ್ ಪಥಗಳ ಆಧಾರದ ಮೇಲೆ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಹೇಗೆ ಪತ್ತೆ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ನಿಮ್ಮ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಮತ್ತು ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳನ್ನು ತಪ್ಪಿಸಲು ಅತ್ಯಗತ್ಯ. ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿಯು ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್‌ನ ಜಟಿಲತೆಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಕ್ಲಾಸಿಕ್ ಮತ್ತು ನೋಡ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರಗಳು, tsconfig.json ನಲ್ಲಿನ baseUrl ಮತ್ತು paths ಪಾತ್ರ, ಮತ್ತು ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು ಸೇರಿವೆ.

ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಎಂದರೇನು?

ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಎಂದರೆ ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿನ ಇಂಪೋರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಆಧರಿಸಿ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಕಂಪೈಲರ್ ಒಂದು ಮಾಡ್ಯೂಲ್‌ನ ಸ್ಥಳವನ್ನು ನಿರ್ಧರಿಸುವ ಪ್ರಕ್ರಿಯೆ. ನೀವು import { SomeComponent } from './components/SomeComponent'; ಎಂದು ಬರೆದಾಗ, ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ SomeComponent ಮಾಡ್ಯೂಲ್ ನಿಜವಾಗಿ ನಿಮ್ಮ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಎಲ್ಲಿದೆ ಎಂದು ಕಂಡುಹಿಡಿಯಬೇಕಾಗುತ್ತದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯು ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಹೇಗೆ ಹುಡುಕುತ್ತದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ನಿಯಮಗಳು ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳ ಗುಂಪಿನಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡುತ್ತದೆ.

ತಪ್ಪಾದ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಕಂಪೈಲೇಶನ್ ದೋಷಗಳು, ರನ್‌ಟೈಮ್ ದೋಷಗಳು, ಮತ್ತು ಪ್ರಾಜೆಕ್ಟ್‌ನ ರಚನೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಲ್ಲಿ ಕಷ್ಟಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು. ಆದ್ದರಿಂದ, ಯಾವುದೇ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಡೆವಲಪರ್‌ಗೆ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್‌ನ ದೃಢವಾದ ತಿಳುವಳಿಕೆ ಅತ್ಯಗತ್ಯ.

ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರಗಳು

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಎರಡು ಪ್ರಮುಖ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇವುಗಳನ್ನು tsconfig.json ನಲ್ಲಿನ moduleResolution ಕಂಪೈಲರ್ ಆಯ್ಕೆಯ ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗುತ್ತದೆ:

ಕ್ಲಾಸಿಕ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್

classic ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಎರಡರಲ್ಲಿ ಸರಳವಾದುದು. ಇದು ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನೇರವಾದ ರೀತಿಯಲ್ಲಿ ಹುಡುಕುತ್ತದೆ, ಇಂಪೋರ್ಟ್ ಮಾಡುವ ಫೈಲ್‌ನಿಂದ ಡೈರೆಕ್ಟರಿ ಟ್ರೀಯ ಮೇಲಕ್ಕೆ ಚಲಿಸುತ್ತದೆ.

ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

  1. ಇಂಪೋರ್ಟ್ ಮಾಡುವ ಫೈಲ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಡೈರೆಕ್ಟರಿಯಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.
  2. ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹೆಸರು ಮತ್ತು ವಿಸ್ತರಣೆಗಳೊಂದಿಗೆ (.ts, .tsx, .d.ts) ಫೈಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ.
  3. ಕಂಡುಬರದಿದ್ದರೆ, ಅದು ಪೇರೆಂಟ್ ಡೈರೆಕ್ಟರಿಗೆ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಹುಡುಕಾಟವನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ.
  4. ಮಾಡ್ಯೂಲ್ ಕಂಡುಬರುವವರೆಗೆ ಅಥವಾ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನ ರೂಟ್ ತಲುಪುವವರೆಗೆ ಈ ಪ್ರಕ್ರಿಯೆ ಮುಂದುವರಿಯುತ್ತದೆ.

ಉದಾಹರಣೆ:

ಕೆಳಗಿನ ಪ್ರಾಜೆಕ್ಟ್ ರಚನೆಯನ್ನು ಪರಿಗಣಿಸಿ:


project/
├── src/
│   ├── components/
│   │   ├── SomeComponent.ts
│   │   └── index.ts
│   └── app.ts
├── tsconfig.json

ಒಂದು ವೇಳೆ app.ts ಫೈಲ್‌ನಲ್ಲಿ import { SomeComponent } from './components/SomeComponent'; ಇಂಪೋರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಇದ್ದರೆ, classic ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಹೀಗೆ ಮಾಡುತ್ತದೆ:

  1. src ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ./components/SomeComponent.ts, ./components/SomeComponent.tsx, ಅಥವಾ ./components/SomeComponent.d.ts ಫೈಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ.
  2. ಕಂಡುಬರದಿದ್ದರೆ, ಅದು ಪೇರೆಂಟ್ ಡೈರೆಕ್ಟರಿಗೆ (ಪ್ರಾಜೆಕ್ಟ್ ರೂಟ್) ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಹುಡುಕಾಟವನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ, ಆದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಕಾಂಪೊನೆಂಟ್ src ಫೋಲ್ಡರ್‌ನಲ್ಲிருப்பதால் ಇದು ಯಶಸ್ವಿಯಾಗುವ ಸಾಧ್ಯತೆ ಕಡಿಮೆ.

ಮಿತಿಗಳು:

ಯಾವಾಗ ಬಳಸಬೇಕು:

classic ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಸಾಮಾನ್ಯವಾಗಿ ಸರಳ ಡೈರೆಕ್ಟರಿ ರಚನೆ ಮತ್ತು ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳಿಲ್ಲದ ಅತಿ ಚಿಕ್ಕ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ ಮಾತ್ರ ಸೂಕ್ತವಾಗಿದೆ. ಆಧುನಿಕ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಯಾವಾಗಲೂ node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವನ್ನು ಬಳಸಬೇಕು.

ನೋಡ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್

node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು Node.js ಬಳಸುವ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ. ಇದು Node.js ಅನ್ನು ಗುರಿಯಾಗಿಸುವ ಅಥವಾ npm ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಬಳಸುವ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ ಆದ್ಯತೆಯ ಆಯ್ಕೆಯಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ಸ್ಥಿರ ಮತ್ತು ನಿರೀಕ್ಷಿತ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ನಡವಳಿಕೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸುತ್ತದೆ, node_modules ಒಳಗೆ ಹುಡುಕುವುದಕ್ಕೆ ಆದ್ಯತೆ ನೀಡುತ್ತದೆ ಮತ್ತು ವಿಭಿನ್ನ ಫೈಲ್ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ:

  1. ನಾನ್-ರಿಲೇಟಿವ್ ಇಂಪೋರ್ಟ್‌ಗಳು: ಇಂಪೋರ್ಟ್ ಪಥವು ./, ../, ಅಥವಾ / ನಿಂದ ಪ್ರಾರಂಭವಾಗದಿದ್ದರೆ, ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಅದು node_modules ನಲ್ಲಿರುವ ಮಾಡ್ಯೂಲ್ ಎಂದು ಭಾವಿಸುತ್ತದೆ. ಇದು ಈ ಕೆಳಗಿನ ಸ್ಥಳಗಳಲ್ಲಿ ಮಾಡ್ಯೂಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ:
    • ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿನ node_modules.
    • ಪೇರೆಂಟ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿನ node_modules.
    • ...ಮತ್ತು ಹೀಗೆ, ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನ ರೂಟ್ ತಲುಪುವವರೆಗೆ.
  2. ರಿಲೇಟಿವ್ ಇಂಪೋರ್ಟ್‌ಗಳು: ಇಂಪೋರ್ಟ್ ಪಥವು ./, ../, ಅಥವಾ / ನಿಂದ ಪ್ರಾರಂಭವಾದರೆ, ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಅದನ್ನು ರಿಲೇಟಿವ್ ಪಥವೆಂದು ಪರಿಗಣಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸ್ಥಳದಲ್ಲಿ ಮಾಡ್ಯೂಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ, ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಪರಿಗಣಿಸಿ:
    • ಇದು ಮೊದಲು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹೆಸರು ಮತ್ತು ವಿಸ್ತರಣೆಗಳೊಂದಿಗೆ (.ts, .tsx, .d.ts) ಫೈಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ.
    • ಕಂಡುಬರದಿದ್ದರೆ, ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹೆಸರಿನ ಡೈರೆಕ್ಟರಿಗಾಗಿ ಮತ್ತು ಆ ಡೈರೆಕ್ಟರಿಯೊಳಗೆ index.ts, index.tsx, ಅಥವಾ index.d.ts ಹೆಸರಿನ ಫೈಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಇಂಪೋರ್ಟ್ ./components ಆಗಿದ್ದರೆ ./components/index.ts).

ಉದಾಹರಣೆ:

lodash ಲೈಬ್ರರಿಯ ಮೇಲೆ ಅವಲಂಬನೆಯನ್ನು ಹೊಂದಿರುವ ಕೆಳಗಿನ ಪ್ರಾಜೆಕ್ಟ್ ರಚನೆಯನ್ನು ಪರಿಗಣಿಸಿ:


project/
├── src/
│   ├── utils/
│   │   └── helpers.ts
│   └── app.ts
├── node_modules/
│   └── lodash/
│       └── lodash.js
├── tsconfig.json

ಒಂದು ವೇಳೆ app.ts ಫೈಲ್‌ನಲ್ಲಿ import * as _ from 'lodash'; ಇಂಪೋರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಇದ್ದರೆ, node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಹೀಗೆ ಮಾಡುತ್ತದೆ:

  1. lodash ನಾನ್-ರಿಲೇಟಿವ್ ಇಂಪೋರ್ಟ್ ಎಂದು ಗುರುತಿಸುತ್ತದೆ.
  2. ಪ್ರಾಜೆಕ್ಟ್ ರೂಟ್‌ನೊಳಗಿನ node_modules ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ lodash ಗಾಗಿ ಹುಡುಕುತ್ತದೆ.
  3. node_modules/lodash/lodash.js ನಲ್ಲಿ lodash ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ.

ಒಂದು ವೇಳೆ helpers.ts ಫೈಲ್‌ನಲ್ಲಿ import { SomeHelper } from './SomeHelper'; ಇಂಪೋರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಇದ್ದರೆ, node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಹೀಗೆ ಮಾಡುತ್ತದೆ:

  1. ./SomeHelper ಒಂದು ರಿಲೇಟಿವ್ ಇಂಪೋರ್ಟ್ ಎಂದು ಗುರುತಿಸುತ್ತದೆ.
  2. src/utils ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ./SomeHelper.ts, ./SomeHelper.tsx, ಅಥವಾ ./SomeHelper.d.ts ಫೈಲ್‌ಗಾಗಿ ಹುಡುಕುತ್ತದೆ.
  3. ಆ ಫೈಲ್‌ಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ಅದು SomeHelper ಹೆಸರಿನ ಡೈರೆಕ್ಟರಿಗಾಗಿ ಮತ್ತು ನಂತರ ಆ ಡೈರೆಕ್ಟರಿಯೊಳಗೆ index.ts, index.tsx, ಅಥವಾ index.d.ts ಗಾಗಿ ಹುಡುಕುತ್ತದೆ.

ಪ್ರಯೋಜನಗಳು:

ಯಾವಾಗ ಬಳಸಬೇಕು:

node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರವು ಹೆಚ್ಚಿನ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ ಶಿಫಾರಸು ಮಾಡಲಾದ ಆಯ್ಕೆಯಾಗಿದೆ, ವಿಶೇಷವಾಗಿ Node.js ಅನ್ನು ಗುರಿಯಾಗಿಸುವ ಅಥವಾ npm ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಬಳಸುವ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ. ಇದು classic ತಂತ್ರಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಹೆಚ್ಚು ನಮ್ಯ ಮತ್ತು ದೃಢವಾದ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ವ್ಯವಸ್ಥೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ.

tsconfig.json ನಲ್ಲಿ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು

tsconfig.json ಫೈಲ್ ನಿಮ್ಮ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಕೇಂದ್ರ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಆಗಿದೆ. ಇದು ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರ ಸೇರಿದಂತೆ ಕಂಪೈಲರ್ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಮತ್ತು ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಇಲ್ಲಿ node ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರದೊಂದಿಗೆ ಒಂದು ಮೂಲ tsconfig.json ಫೈಲ್ ಇದೆ:


{
  "compilerOptions": {
    "moduleResolution": "node",
    "target": "es5",
    "module": "commonjs",
    "esModuleInterop": true,
    "strict": true,
    "outDir": "dist",
    "sourceMap": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}

ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಪ್ರಮುಖ compilerOptions:

baseUrl ಮತ್ತು paths: ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದು

baseUrl ಮತ್ತು paths ಕಂಪೈಲರ್ ಆಯ್ಕೆಗಳು ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ಹೇಗೆ ಪರಿಹರಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು ಪ್ರಬಲ ಯಾಂತ್ರಿಕತೆಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ. ಅವು ಅಬ್ಸೊಲ್ಯೂಟ್ ಇಂಪೋರ್ಟ್‌ಗಳನ್ನು ಬಳಸಲು ಮತ್ತು ಕಸ್ಟಮ್ ಪಥ ಮ್ಯಾಪಿಂಗ್‌ಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಕೋಡ್‌ನ ಓದುವಿಕೆ ಮತ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು.

baseUrl

baseUrl ಆಯ್ಕೆಯು ನಾನ್-ರಿಲೇಟಿವ್ ಮಾಡ್ಯೂಲ್ ಹೆಸರುಗಳನ್ನು ಪರಿಹರಿಸಲು ಬೇಸ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. baseUrl ಅನ್ನು ಹೊಂದಿಸಿದಾಗ, ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಸ್ತುತ ವರ್ಕಿಂಗ್ ಡೈರೆಕ್ಟರಿಯ ಬದಲಿಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಬೇಸ್ ಡೈರೆಕ್ಟರಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ನಾನ್-ರಿಲೇಟಿವ್ ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ:

ಕೆಳಗಿನ ಪ್ರಾಜೆಕ್ಟ್ ರಚನೆಯನ್ನು ಪರಿಗಣಿಸಿ:


project/
├── src/
│   ├── components/
│   │   ├── SomeComponent.ts
│   │   └── index.ts
│   └── app.ts
├── tsconfig.json

ಒಂದು ವೇಳೆ tsconfig.json ಕೆಳಗಿನವುಗಳನ್ನು ಹೊಂದಿದ್ದರೆ:


{
  "compilerOptions": {
    "moduleResolution": "node",
    "baseUrl": "./src"
  }
}

ಆಗ, app.ts ನಲ್ಲಿ, ನೀವು ಈ ಕೆಳಗಿನ ಇಂಪೋರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಅನ್ನು ಬಳಸಬಹುದು:


import { SomeComponent } from 'components/SomeComponent';

ಇದರ ಬದಲಾಗಿ:


import { SomeComponent } from './components/SomeComponent';

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ baseUrl ನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ./src ಡೈರೆಕ್ಟರಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ components/SomeComponent ಅನ್ನು ಪರಿಹರಿಸುತ್ತದೆ.

baseUrl ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳು:

paths

paths ಆಯ್ಕೆಯು ಮಾಡ್ಯೂಲ್‌ಗಳಿಗಾಗಿ ಕಸ್ಟಮ್ ಪಥ ಮ್ಯಾಪಿಂಗ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಇದು ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ಹೇಗೆ ಪರಿಹರಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು ಹೆಚ್ಚು ನಮ್ಯ ಮತ್ತು ಪ್ರಬಲವಾದ ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಮಾಡ್ಯೂಲ್‌ಗಳಿಗೆ ಅಲಿಯಾಸ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಇಂಪೋರ್ಟ್‌ಗಳನ್ನು ವಿಭಿನ್ನ ಸ್ಥಳಗಳಿಗೆ ಮರುನಿರ್ದೇಶಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

paths ಆಯ್ಕೆಯು ಒಂದು ಆಬ್ಜೆಕ್ಟ್ ಆಗಿದ್ದು, ಇದರಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಕೀ ಒಂದು ಪಥದ ಮಾದರಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿಯೊಂದು ಮೌಲ್ಯವು ಪಥದ ಬದಲಿಗಳ ಒಂದು ಶ್ರೇಣಿಯಾಗಿದೆ. ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಪೋರ್ಟ್ ಪಥವನ್ನು ಪಥದ ಮಾದರಿಗಳೊಂದಿಗೆ ಹೊಂದಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಮತ್ತು ಹೊಂದಾಣಿಕೆಯಾದರೆ, ಇಂಪೋರ್ಟ್ ಪಥವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಬದಲಿ ಪಥಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ:

ಕೆಳಗಿನ ಪ್ರಾಜೆಕ್ಟ್ ರಚನೆಯನ್ನು ಪರಿಗಣಿಸಿ:


project/
├── src/
│   ├── components/
│   │   ├── SomeComponent.ts
│   │   └── index.ts
│   └── app.ts
├── libs/
│   └── my-library.ts
├── tsconfig.json

ಒಂದು ವೇಳೆ tsconfig.json ಕೆಳಗಿನವುಗಳನ್ನು ಹೊಂದಿದ್ದರೆ:


{
  "compilerOptions": {
    "moduleResolution": "node",
    "baseUrl": "./src",
    "paths": {
      "@components/*": ["components/*"],
      "@mylib": ["../libs/my-library.ts"]
    }
  }
}

ಆಗ, app.ts ನಲ್ಲಿ, ನೀವು ಈ ಕೆಳಗಿನ ಇಂಪೋರ್ಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳನ್ನು ಬಳಸಬಹುದು:


import { SomeComponent } from '@components/SomeComponent';
import { MyLibraryFunction } from '@mylib';

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ @components/* ಪಥ ಮ್ಯಾಪಿಂಗ್ ಆಧರಿಸಿ @components/SomeComponent ಅನ್ನು components/SomeComponent ಗೆ, ಮತ್ತು @mylib ಪಥ ಮ್ಯಾಪಿಂಗ್ ಆಧರಿಸಿ @mylib ಅನ್ನು ../libs/my-library.ts ಗೆ ಪರಿಹರಿಸುತ್ತದೆ.

paths ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳು:

paths ಗಾಗಿ ಸಾಮಾನ್ಯ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು:

ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು

ಸ್ಕೇಲೆಬಲ್ ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದಾದ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಇಂಪೋರ್ಟ್ ಪಥಗಳ ಪರಿಣಾಮಕಾರಿ ನಿರ್ವಹಣೆ ಅತ್ಯಗತ್ಯ. ಅನುಸರಿಸಬೇಕಾದ ಕೆಲವು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು ಇಲ್ಲಿವೆ:

ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸುವುದು

ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಸಮಸ್ಯೆಗಳನ್ನು ಡೀಬಗ್ ಮಾಡುವುದು ನಿರಾಶಾದಾಯಕವಾಗಿರುತ್ತದೆ. ಇಲ್ಲಿ ಕೆಲವು ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಪರಿಹಾರಗಳಿವೆ:

ವಿವಿಧ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿ ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆಗಳು

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್‌ನ ತತ್ವಗಳು ವಿವಿಧ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿ ಅನ್ವಯಿಸುತ್ತವೆ. ಅವುಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಹೇಗೆ ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:

ತೀರ್ಮಾನ

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ವ್ಯವಸ್ಥೆಯು ನಿಮ್ಮ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು ಒಂದು ಪ್ರಬಲ ಸಾಧನವಾಗಿದೆ. ವಿಭಿನ್ನ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ತಂತ್ರಗಳು, baseUrl ಮತ್ತು paths ನ ಪಾತ್ರ, ಮತ್ತು ಇಂಪೋರ್ಟ್ ಪಥಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ, ನೀವು ಸ್ಕೇಲೆಬಲ್, ನಿರ್ವಹಿಸಬಹುದಾದ, ಮತ್ತು ಓದಬಲ್ಲ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು. tsconfig.json ನಲ್ಲಿ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ಸರಿಯಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ವರ್ಕ್‌ಫ್ಲೋ ಅನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು ಮತ್ತು ದೋಷಗಳ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು. ವಿಭಿನ್ನ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳೊಂದಿಗೆ ಪ್ರಯೋಗ ಮಾಡಿ ಮತ್ತು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಅಗತ್ಯಗಳಿಗೆ ಉತ್ತಮವಾಗಿ ಸರಿಹೊಂದುವ ವಿಧಾನವನ್ನು ಕಂಡುಕೊಳ್ಳಿ.

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ರೆಸಲ್ಯೂಶನ್: ಇಂಪೋರ್ಟ್ ಪಥ ತಂತ್ರಗಳನ್ನು ಸರಳೀಕರಿಸುವುದು | MLOG