ഈ വിശദമായ tsconfig.json ഗൈഡ് ഉപയോഗിച്ച് ടൈപ്പ്സ്ക്രിപ്റ്റ് കോൺഫിഗറേഷനിൽ വൈദഗ്ദ്ധ്യം നേടൂ. കാര്യക്ഷമമായ ഡെവലപ്മെന്റിനായി അത്യാവശ്യ കംപൈലർ ഓപ്ഷനുകൾ, പ്രോജക്റ്റ് സെറ്റപ്പ്, നൂതന കോൺഫിഗറേഷനുകൾ എന്നിവ പഠിക്കുക.
ടൈപ്പ്സ്ക്രിപ്റ്റ് കോൺഫിഗറേഷൻ: ഒരു സമഗ്ര tsconfig.json ഗൈഡ്
ജാവാസ്ക്രിപ്റ്റിന്റെ ഒരു സൂപ്പർസെറ്റായ ടൈപ്പ്സ്ക്രിപ്റ്റ്, വെബ് ഡെവലപ്മെന്റിന്റെ ചലനാത്മക ലോകത്തേക്ക് സ്റ്റാറ്റിക് ടൈപ്പിംഗ് കൊണ്ടുവരുന്നു. ടൈപ്പ്സ്ക്രിപ്റ്റിന്റെ മുഴുവൻ ശക്തിയും പ്രയോജനപ്പെടുത്തുന്നതിന് നന്നായി കോൺഫിഗർ ചെയ്ത ഒരു tsconfig.json
ഫയൽ നിർണായകമാണ്. ഈ ഗൈഡ് tsconfig.json
-ന്റെ ഒരു സമഗ്രമായ അവലോകനം നൽകുന്നു, അത്യാവശ്യമായ കംപൈലർ ഓപ്ഷനുകൾ, പ്രോജക്റ്റ് സെറ്റപ്പ്, നൂതന കോൺഫിഗറേഷനുകൾ എന്നിവ ഉൾക്കൊള്ളുന്നു.
എന്താണ് tsconfig.json?
ഒരു ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റിനായുള്ള കംപൈലർ ഓപ്ഷനുകൾ വ്യക്തമാക്കുന്ന ഒരു കോൺഫിഗറേഷൻ ഫയലാണ് tsconfig.json
. ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡിനെ എങ്ങനെ ജാവാസ്ക്രിപ്റ്റിലേക്ക് മാറ്റണമെന്ന് ഇത് ടൈപ്പ്സ്ക്രിപ്റ്റ് കംപൈലറിനോട് പറയുന്നു. പ്രോജക്റ്റിന്റെ ഘടന നിർവചിക്കുന്നതിനും കംപൈലേഷൻ നിയമങ്ങൾ സജ്ജീകരിക്കുന്നതിനും, ഡെവലപ്മെന്റ് ടീം ഒരൊറ്റ ഓഫീസിലാണെങ്കിലും അല്ലെങ്കിൽ ഒന്നിലധികം ഭൂഖണ്ഡങ്ങളിൽ വ്യാപിച്ചുകിടക്കുകയാണെങ്കിലും അവർക്കിടയിൽ സ്ഥിരത ഉറപ്പാക്കുന്നതിനും ഈ ഫയൽ അത്യാവശ്യമാണ്.
ഒരു tsconfig.json ഫയൽ ഉണ്ടാക്കുന്നു
ഒരു tsconfig.json
ഫയൽ ഉണ്ടാക്കാൻ, നിങ്ങളുടെ പ്രോജക്റ്റിന്റെ റൂട്ട് ഡയറക്ടറിയിലേക്ക് ടെർമിനലിൽ പോയി താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:
tsc --init
ഈ കമാൻഡ് സാധാരണയായി ഉപയോഗിക്കുന്ന കംപൈലർ ഓപ്ഷനുകളുള്ള ഒരു അടിസ്ഥാന tsconfig.json
ഫയൽ ഉണ്ടാക്കുന്നു. നിങ്ങളുടെ പ്രോജക്റ്റിന്റെ പ്രത്യേക ആവശ്യകതകൾക്കനുസരിച്ച് നിങ്ങൾക്ക് ഫയൽ കസ്റ്റമൈസ് ചെയ്യാവുന്നതാണ്. ഒരു സാധാരണ tsconfig.json
-ൽ compilerOptions
, include
, exclude
തുടങ്ങിയ ഓപ്ഷനുകൾ ഉൾപ്പെടും.
അത്യാവശ്യ കംപൈലർ ഓപ്ഷനുകൾ
compilerOptions
വിഭാഗമാണ് tsconfig.json
ഫയലിന്റെ ഹൃദയം. ടൈപ്പ്സ്ക്രിപ്റ്റ് കംപൈലറിന്റെ പ്രവർത്തനം നിയന്ത്രിക്കുന്ന നിരവധി ഓപ്ഷനുകൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു. ഏറ്റവും പ്രധാനപ്പെട്ട ചില കംപൈലർ ഓപ്ഷനുകൾ ഇതാ:
target
ഉണ്ടാക്കുന്ന ജാവാസ്ക്രിപ്റ്റ് കോഡിനായുള്ള ECMAScript ടാർഗെറ്റ് പതിപ്പ് target
ഓപ്ഷൻ വ്യക്തമാക്കുന്നു. സാധാരണ മൂല്യങ്ങളിൽ ES5
, ES6
(ES2015), ES2016
, ES2017
, ES2018
, ES2019
, ES2020
, ES2021
, ES2022
, ESNext
എന്നിവ ഉൾപ്പെടുന്നു. ബ്രൗസറുകൾ അല്ലെങ്കിൽ Node.js പതിപ്പുകൾ പോലുള്ള ഉദ്ദേശിച്ച റൺടൈം എൻവയോൺമെന്റുമായി പൊരുത്തം ഉറപ്പാക്കാൻ ശരിയായ ടാർഗെറ്റ് തിരഞ്ഞെടുക്കുന്നത് നിർണായകമാണ്.
ഉദാഹരണം:
{
"compilerOptions": {
"target": "ES2020"
}
}
module
module
ഓപ്ഷൻ മൊഡ്യൂൾ കോഡ് ജനറേഷൻ ശൈലി വ്യക്തമാക്കുന്നു. സാധാരണ മൂല്യങ്ങളിൽ CommonJS
, AMD
, System
, UMD
, ES6
(ES2015), ES2020
, ESNext
എന്നിവ ഉൾപ്പെടുന്നു. മൊഡ്യൂൾ സിസ്റ്റത്തിന്റെ തിരഞ്ഞെടുപ്പ് ടാർഗെറ്റ് എൻവയോൺമെന്റിനെയും ഉപയോഗിക്കുന്ന മൊഡ്യൂൾ ബണ്ട്ലറിനെയും (ഉദാഹരണത്തിന്, Webpack, Rollup, Parcel) ആശ്രയിച്ചിരിക്കുന്നു. Node.js-നായി CommonJS
പലപ്പോഴും ഉപയോഗിക്കുന്നു, അതേസമയം ആധുനിക വെബ് ആപ്ലിക്കേഷനുകൾക്കായി, ഒരു മൊഡ്യൂൾ ബണ്ട്ലറോടുകൂടിയ ES6
അല്ലെങ്കിൽ ESNext
ആണ് തിരഞ്ഞെടുക്കുന്നത്. ESNext
ഉപയോഗിക്കുന്നത് ഡെവലപ്പർമാർക്ക് ഏറ്റവും പുതിയ ഫീച്ചറുകളും ഒപ്റ്റിമൈസേഷനുകളും പ്രയോജനപ്പെടുത്താൻ അനുവദിക്കുന്നു, അതേസമയം അന്തിമ മൊഡ്യൂൾ ഫോർമാറ്റ് കൈകാര്യം ചെയ്യാൻ ബണ്ട്ലറിനെ ആശ്രയിക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"module": "ESNext"
}
}
lib
lib
ഓപ്ഷൻ കംപൈലേഷനിൽ ഉൾപ്പെടുത്തേണ്ട ലൈബ്രറി ഫയലുകളുടെ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കുന്നു. ഈ ലൈബ്രറി ഫയലുകൾ ബിൽറ്റ്-ഇൻ ജാവാസ്ക്രിപ്റ്റ് API-കൾക്കും ബ്രൗസർ API-കൾക്കും ടൈപ്പ് ഡെഫനിഷനുകൾ നൽകുന്നു. സാധാരണ മൂല്യങ്ങളിൽ ES5
, ES6
, ES2015
, ES2016
, ES2017
, ES2018
, ES2019
, ES2020
, ES2021
, ES2022
, ESNext
, DOM
, WebWorker
, ScriptHost
, ES2015.Core
, ES2015.Collection
, ES2015.Iterable
, ES2015.Promise
, ES2015.Proxy
, ES2015.Reflect
, ES2015.Generator
, ES2015.Symbol
, ES2015.Symbol.WellKnown
, ES2016.Array.Include
, ES2017.object
, ES2017.Intl
, ES2017.SharedMemory
, ES2017.String
, ES2017.TypedArrays
, ES2018.Intl
, ES2018.Promise
, ES2018.RegExp
, ES2019.Array
, ES2019.Object
, ES2019.String
, ES2019.Symbol
, ES2020.BigInt
, ES2020.Promise
, ES2020.String
, ES2020.Symbol.WellKnown
, ES2021.Promise
, ES2021.String
, ES2021.WeakRef
, ES2022.Error
, ES2022.Object
, ES2022.String
എന്നിവയും മറ്റും ഉൾപ്പെടുന്നു. ഉചിതമായ ലൈബ്രറികൾ തിരഞ്ഞെടുക്കുന്നത് ടാർഗെറ്റ് എൻവയോൺമെന്റിനായി ടൈപ്പ്സ്ക്രിപ്റ്റ് കംപൈലറിന് ആവശ്യമായ ടൈപ്പ് വിവരങ്ങൾ ഉണ്ടെന്ന് ഉറപ്പാക്കുന്നു. DOM ലൈബ്രറി ഉപയോഗിക്കുന്നത് ബ്രൗസർ-നിർദ്ദിഷ്ട API-കൾ ഉപയോഗിക്കുന്ന കോഡ് ടൈപ്പ് പിശകുകളില്ലാതെ കംപൈൽ ചെയ്യാൻ പ്രോജക്റ്റിനെ അനുവദിക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"lib": ["ES2020", "DOM"]
}
}
allowJs
allowJs
ഓപ്ഷൻ ടൈപ്പ്സ്ക്രിപ്റ്റ് ഫയലുകൾക്കൊപ്പം ജാവാസ്ക്രിപ്റ്റ് ഫയലുകൾ കംപൈൽ ചെയ്യാൻ ടൈപ്പ്സ്ക്രിപ്റ്റ് കംപൈലറിനെ അനുവദിക്കുന്നു. നിലവിലുള്ള ജാവാസ്ക്രിപ്റ്റ് പ്രോജക്റ്റുകൾ ഘട്ടം ഘട്ടമായി ടൈപ്പ്സ്ക്രിപ്റ്റിലേക്ക് മാറ്റുന്നതിന് ഇത് ഉപയോഗപ്രദമാണ്. ഇത് true
ആയി സജ്ജീകരിക്കുന്നത് .js
ഫയലുകൾ പ്രോസസ്സ് ചെയ്യാൻ കംപൈലറിനെ പ്രാപ്തമാക്കുന്നു, ഇത് ഒരു പ്രോജക്റ്റിനുള്ളിൽ ടൈപ്പ്സ്ക്രിപ്റ്റിന്റെ ക്രമാനുഗതമായ ഉപയോഗം സാധ്യമാക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"allowJs": true
}
}
jsx
jsx
ഓപ്ഷൻ JSX സിന്റാക്സ് എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് വ്യക്തമാക്കുന്നു. സാധാരണ മൂല്യങ്ങളിൽ preserve
, react
, react-native
, react-jsx
എന്നിവ ഉൾപ്പെടുന്നു. preserve
ഔട്ട്പുട്ടിൽ JSX സിന്റാക്സ് നിലനിർത്തുന്നു, അതേസമയം react
JSX-നെ React.createElement കോളുകളാക്കി മാറ്റുന്നു. react-jsx
React 17-ൽ അവതരിപ്പിച്ച പുതിയ JSX ട്രാൻസ്ഫോം ഉപയോഗിക്കുന്നു, ഇതിന് React ഇമ്പോർട്ട് ചെയ്യേണ്ട ആവശ്യമില്ല. React അല്ലെങ്കിൽ മറ്റ് JSX അടിസ്ഥാനമാക്കിയുള്ള ലൈബ്രറികൾ ഉപയോഗിക്കുന്ന പ്രോജക്റ്റുകൾക്ക് ശരിയായ JSX ഓപ്ഷൻ തിരഞ്ഞെടുക്കുന്നത് നിർണായകമാണ്.
ഉദാഹരണം:
{
"compilerOptions": {
"jsx": "react-jsx"
}
}
declaration
declaration
ഓപ്ഷൻ ഓരോ ടൈപ്പ്സ്ക്രിപ്റ്റ് ഫയലിനും അനുയോജ്യമായ .d.ts
ഡിക്ലറേഷൻ ഫയലുകൾ ഉണ്ടാക്കുന്നു. ഡിക്ലറേഷൻ ഫയലുകളിൽ ടൈപ്പ് വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു, കംപൈൽ ചെയ്ത കോഡ് ഉപയോഗിക്കുന്നതിന് മറ്റ് ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റുകൾ ഇത് ഉപയോഗിക്കുന്നു. പുനരുപയോഗിക്കാവുന്ന ലൈബ്രറികളും മൊഡ്യൂളുകളും ഉണ്ടാക്കുന്നതിന് ഡിക്ലറേഷൻ ഫയലുകൾ ഉണ്ടാക്കുന്നത് അത്യാവശ്യമാണ്. ഈ ഫയലുകൾ മറ്റ് ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റുകൾക്ക് യഥാർത്ഥ സോഴ്സ് കോഡ് കംപൈൽ ചെയ്യാതെ തന്നെ ലൈബ്രറി നൽകുന്ന ടൈപ്പുകളും ഇന്റർഫേസുകളും മനസ്സിലാക്കാൻ അനുവദിക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"declaration": true
}
}
sourceMap
sourceMap
ഓപ്ഷൻ സോഴ്സ് മാപ്പ് ഫയലുകൾ ഉണ്ടാക്കുന്നു, ഇത് ഉണ്ടാക്കിയ ജാവാസ്ക്രിപ്റ്റ് കോഡിനെ യഥാർത്ഥ ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡിലേക്ക് തിരികെ മാപ്പ് ചെയ്യുന്നു. ബ്രൗസറുകളിലും മറ്റ് എൻവയോൺമെന്റുകളിലും ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡ് ഡീബഗ്ഗ് ചെയ്യുന്നതിന് സോഴ്സ് മാപ്പുകൾ അത്യാവശ്യമാണ്. ജാവാസ്ക്രിപ്റ്റ് കോഡിൽ ഒരു പിശക് സംഭവിക്കുമ്പോൾ, ഡീബഗ്ഗറിൽ അനുബന്ധ ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡ് കാണാൻ സോഴ്സ് മാപ്പ് ഡെവലപ്പറെ അനുവദിക്കുന്നു, ഇത് പ്രശ്നം തിരിച്ചറിയാനും പരിഹരിക്കാനും എളുപ്പമാക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"sourceMap": true
}
}
outDir
outDir
ഓപ്ഷൻ ഉണ്ടാക്കിയ ജാവാസ്ക്രിപ്റ്റ് ഫയലുകൾക്കുള്ള ഔട്ട്പുട്ട് ഡയറക്ടറി വ്യക്തമാക്കുന്നു. സോഴ്സ് കോഡിനെ കംപൈൽ ചെയ്ത കോഡിൽ നിന്ന് വേർതിരിച്ച് പ്രോജക്റ്റിന്റെ ബിൽഡ് ഔട്ട്പുട്ട് ഓർഗനൈസുചെയ്യാൻ ഈ ഓപ്ഷൻ സഹായിക്കുന്നു. ഒരു outDir
ഉപയോഗിക്കുന്നത് ബിൽഡ് പ്രോസസ്സ് നിയന്ത്രിക്കാനും ആപ്ലിക്കേഷൻ വിന്യസിക്കാനും എളുപ്പമാക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"outDir": "dist"
}
}
rootDir
rootDir
ഓപ്ഷൻ ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റിന്റെ റൂട്ട് ഡയറക്ടറി വ്യക്തമാക്കുന്നു. മൊഡ്യൂൾ നെയിമുകൾ പരിഹരിക്കുന്നതിനുള്ള അടിസ്ഥാനമായി കംപൈലർ ഈ ഡയറക്ടറി ഉപയോഗിക്കുന്നു. സങ്കീർണ്ണമായ ഡയറക്ടറി ഘടനയുള്ള പ്രോജക്റ്റുകൾക്ക് ഈ ഓപ്ഷൻ വളരെ പ്രധാനമാണ്. rootDir
ശരിയായി സജ്ജീകരിക്കുന്നത് കംപൈലറിന് ആവശ്യമായ എല്ലാ മൊഡ്യൂളുകളും ഡിപൻഡൻസികളും കണ്ടെത്താൻ കഴിയുമെന്ന് ഉറപ്പാക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"rootDir": "src"
}
}
strict
strict
ഓപ്ഷൻ എല്ലാ സ്ട്രിക്റ്റ് ടൈപ്പ്-ചെക്കിംഗ് ഓപ്ഷനുകളും പ്രവർത്തനക്ഷമമാക്കുന്നു. പുതിയ ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റുകൾക്ക് ഇത് വളരെ ശുപാർശ ചെയ്യപ്പെടുന്നു, കാരണം ഇത് ഡെവലപ്മെന്റ് പ്രക്രിയയുടെ തുടക്കത്തിൽ തന്നെ സാധ്യമായ പിശകുകൾ കണ്ടെത്താൻ സഹായിക്കുന്നു. സ്ട്രിക്റ്റ് മോഡ് പ്രവർത്തനക്ഷമമാക്കുന്നത് കർശനമായ ടൈപ്പ് ചെക്കിംഗ് നിയമങ്ങൾ നടപ്പിലാക്കുന്നു, ഇത് കൂടുതൽ കരുത്തുറ്റതും പരിപാലിക്കാൻ എളുപ്പമുള്ളതുമായ കോഡിലേക്ക് നയിക്കുന്നു. എല്ലാ പുതിയ ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റുകളിലും സ്ട്രിക്റ്റ് മോഡ് പ്രവർത്തനക്ഷമമാക്കുന്നത് ഒരു മികച്ച രീതിയാണ്.
ഉദാഹരണം:
{
"compilerOptions": {
"strict": true
}
}
esModuleInterop
esModuleInterop
ഓപ്ഷൻ CommonJS, ES മൊഡ്യൂളുകൾക്കിടയിൽ പരസ്പരപ്രവർത്തനം സാധ്യമാക്കുന്നു. രണ്ട് തരം മൊഡ്യൂളുകളും ഉപയോഗിക്കുന്ന പ്രോജക്റ്റുകൾക്ക് ഇത് പ്രധാനമാണ്. esModuleInterop
പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ, ടൈപ്പ്സ്ക്രിപ്റ്റ് CommonJS, ES മൊഡ്യൂളുകൾ തമ്മിലുള്ള വ്യത്യാസങ്ങൾ സ്വയമേവ കൈകാര്യം ചെയ്യും, ഇത് രണ്ട് സിസ്റ്റങ്ങൾക്കിടയിൽ മൊഡ്യൂളുകൾ ഇമ്പോർട്ട് ചെയ്യാനും എക്സ്പോർട്ട് ചെയ്യാനും എളുപ്പമാക്കുന്നു. വ്യത്യസ്ത മൊഡ്യൂൾ സിസ്റ്റങ്ങൾ ഉപയോഗിച്ചേക്കാവുന്ന തേർഡ്-പാർട്ടി ലൈബ്രറികളുമായി പ്രവർത്തിക്കുമ്പോൾ ഈ ഓപ്ഷൻ പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.
ഉദാഹരണം:
{
"compilerOptions": {
"esModuleInterop": true
}
}
moduleResolution
moduleResolution
ഓപ്ഷൻ ടൈപ്പ്സ്ക്രിപ്റ്റ് എങ്ങനെ മൊഡ്യൂൾ ഇമ്പോർട്ടുകൾ പരിഹരിക്കുന്നുവെന്ന് വ്യക്തമാക്കുന്നു. സാധാരണ മൂല്യങ്ങളിൽ Node
, Classic
എന്നിവ ഉൾപ്പെടുന്നു. Node
മൊഡ്യൂൾ റെസല്യൂഷൻ സ്ട്രാറ്റജി ഡിഫോൾട്ടാണ്, ഇത് Node.js മൊഡ്യൂൾ റെസല്യൂഷൻ അൽഗോരിതം അടിസ്ഥാനമാക്കിയുള്ളതാണ്. Classic
മൊഡ്യൂൾ റെസല്യൂഷൻ സ്ട്രാറ്റജി പഴയതും സാധാരണയായി ഉപയോഗിക്കാത്തതുമാണ്. Node
മൊഡ്യൂൾ റെസല്യൂഷൻ സ്ട്രാറ്റജി ഉപയോഗിക്കുന്നത് ഒരു Node.js എൻവയോൺമെന്റിൽ ടൈപ്പ്സ്ക്രിപ്റ്റിന് മൊഡ്യൂൾ ഇമ്പോർട്ടുകൾ ശരിയായി പരിഹരിക്കാൻ കഴിയുമെന്ന് ഉറപ്പാക്കുന്നു.
ഉദാഹരണം:
{
"compilerOptions": {
"moduleResolution": "Node"
}
}
baseUrl
ഉം paths
ഉം
നോൺ-റിലേറ്റീവ് മൊഡ്യൂൾ ഇമ്പോർട്ടുകൾക്കായി മൊഡ്യൂൾ റെസല്യൂഷൻ കോൺഫിഗർ ചെയ്യുന്നതിനാണ് baseUrl
, paths
ഓപ്ഷനുകൾ ഉപയോഗിക്കുന്നത്. നോൺ-റിലേറ്റീവ് മൊഡ്യൂൾ നെയിമുകൾ പരിഹരിക്കുന്നതിനുള്ള ബേസ് ഡയറക്ടറി baseUrl
ഓപ്ഷൻ വ്യക്തമാക്കുന്നു. ഫയൽ സിസ്റ്റത്തിലെ നിർദ്ദിഷ്ട ലൊക്കേഷനുകളിലേക്ക് മൊഡ്യൂൾ നെയിമുകൾ മാപ്പ് ചെയ്യാൻ paths
ഓപ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു. സങ്കീർണ്ണമായ ഡയറക്ടറി ഘടനയുള്ള പ്രോജക്റ്റുകൾക്കും മൊഡ്യൂൾ ഇമ്പോർട്ടുകൾ ലളിതമാക്കുന്നതിനും ഈ ഓപ്ഷനുകൾ പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. baseUrl
, paths
എന്നിവ ഉപയോഗിക്കുന്നത് കോഡ് കൂടുതൽ വായിക്കാനും പരിപാലിക്കാനും എളുപ്പമാക്കും.
ഉദാഹരണം:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
}
}
Include, Exclude ഓപ്ഷനുകൾ
കംപൈലേഷനിൽ ഏതൊക്കെ ഫയലുകൾ ഉൾപ്പെടുത്തണം, ഏതൊക്കെ ഫയലുകൾ ഒഴിവാക്കണം എന്ന് include
, exclude
ഓപ്ഷനുകൾ വ്യക്തമാക്കുന്നു. ഫയൽ നെയിമുകൾ പൊരുത്തപ്പെടുത്തുന്നതിന് ഈ ഓപ്ഷനുകൾ ഗ്ലോബ് പാറ്റേണുകൾ ഉപയോഗിക്കുന്നു. include
, exclude
എന്നിവ ഉപയോഗിക്കുന്നത് ടൈപ്പ്സ്ക്രിപ്റ്റ് കംപൈലർ പ്രോസസ്സ് ചെയ്യുന്ന ഫയലുകൾ നിയന്ത്രിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഇത് ബിൽഡ് പ്രകടനം മെച്ചപ്പെടുത്തുകയും പിശകുകൾ കുറയ്ക്കുകയും ചെയ്യുന്നു. കംപൈലേഷനിൽ ഉൾപ്പെടുത്തേണ്ട ഫയലുകൾ വ്യക്തമായി വ്യക്തമാക്കുന്നത് ഒരു മികച്ച രീതിയാണ്.
ഉദാഹരണം:
{
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
Extends ഓപ്ഷൻ
മറ്റൊരു tsconfig.json
ഫയലിൽ നിന്ന് കംപൈലർ ഓപ്ഷനുകൾ ഇൻഹെറിറ്റ് ചെയ്യാൻ extends
ഓപ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഒന്നിലധികം പ്രോജക്റ്റുകൾക്കിടയിൽ പൊതുവായ കോൺഫിഗറേഷൻ ക്രമീകരണങ്ങൾ പങ്കിടുന്നതിനോ അല്ലെങ്കിൽ ബേസ് കോൺഫിഗറേഷനുകൾ ഉണ്ടാക്കുന്നതിനോ ഇത് ഉപയോഗപ്രദമാണ്. extends
ഓപ്ഷൻ ഉപയോഗിക്കുന്നത് കോഡ് പുനരുപയോഗം പ്രോത്സാഹിപ്പിക്കുകയും ഡ്യൂപ്ലിക്കേഷൻ കുറയ്ക്കുകയും ചെയ്യുന്നു. ബേസ് കോൺഫിഗറേഷനുകൾ ഉണ്ടാക്കുകയും വ്യക്തിഗത പ്രോജക്റ്റുകളിൽ അവ വികസിപ്പിക്കുകയും ചെയ്യുന്നത് ഒരു മികച്ച രീതിയാണ്.
ഉദാഹരണം:
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"jsx": "react-jsx"
},
"include": ["src/**/*"]
}
നൂതന കോൺഫിഗറേഷനുകൾ
അത്യാവശ്യ കംപൈലർ ഓപ്ഷനുകൾക്കപ്പുറം, പ്രത്യേക സാഹചര്യങ്ങൾക്കായി tsconfig.json
നൂതന കോൺഫിഗറേഷനുകളെ പിന്തുണയ്ക്കുന്നു.
ഇൻക്രിമെൻ്റൽ കംപൈലേഷൻ
വലിയ പ്രോജക്റ്റുകൾക്ക്, ഇൻക്രിമെൻ്റൽ കംപൈലേഷൻ ബിൽഡ് സമയം ഗണ്യമായി മെച്ചപ്പെടുത്തും. ടൈപ്പ്സ്ക്രിപ്റ്റിന് മുൻ കംപൈലേഷനുകളുടെ ഫലങ്ങൾ കാഷെ ചെയ്യാനും മാറ്റം വരുത്തിയ ഫയലുകൾ മാത്രം വീണ്ടും കംപൈൽ ചെയ്യാനും കഴിയും. ഇൻക്രിമെൻ്റൽ കംപൈലേഷൻ പ്രവർത്തനക്ഷമമാക്കുന്നത് വലിയ പ്രോജക്റ്റുകൾക്കുള്ള ബിൽഡ് സമയം ഗണ്യമായി കുറയ്ക്കും. ധാരാളം ഫയലുകളും ഡിപൻഡൻസികളുമുള്ള പ്രോജക്റ്റുകൾക്ക് ഇത് പ്രത്യേകിച്ചും പ്രധാനമാണ്.
{
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": ".tsbuildinfo"
}
}
പ്രോജക്റ്റ് റഫറൻസുകൾ
വലിയ ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റുകളെ ചെറിയ, സ്വതന്ത്ര മൊഡ്യൂളുകളായി ഘടനാപരമാക്കാൻ പ്രോജക്റ്റ് റഫറൻസുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് ബിൽഡ് സമയവും കോഡ് ഓർഗനൈസേഷനും മെച്ചപ്പെടുത്തും. പ്രോജക്റ്റ് റഫറൻസുകൾ ഉപയോഗിക്കുന്നത് വലിയ പ്രോജക്റ്റുകൾ കൂടുതൽ കൈകാര്യം ചെയ്യാനും പരിപാലിക്കാനും എളുപ്പമാക്കും. വലുതും സങ്കീർണ്ണവുമായ പ്രോജക്റ്റുകൾക്ക് പ്രോജക്റ്റ് റഫറൻസുകൾ ഉപയോഗിക്കുന്നത് ഒരു മികച്ച രീതിയാണ്.
{
"compilerOptions": {
"composite": true
},
"references": [
{ "path": "./module1" },
{ "path": "./module2" }
]
}
കസ്റ്റം ടൈപ്പ് ഡെഫനിഷനുകൾ
ചിലപ്പോൾ, ടൈപ്പ് ഡെഫനിഷനുകൾ ഇല്ലാത്ത ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറികൾക്ക് നിങ്ങൾ ടൈപ്പ് ഡെഫനിഷനുകൾ നൽകേണ്ടിവരും. ഈ ലൈബ്രറികളുടെ ടൈപ്പുകൾ നിർവചിക്കാൻ നിങ്ങൾക്ക് കസ്റ്റം .d.ts
ഫയലുകൾ ഉണ്ടാക്കാം. കസ്റ്റം ടൈപ്പ് ഡെഫനിഷനുകൾ ഉണ്ടാക്കുന്നത് ടൈപ്പ് സുരക്ഷ നഷ്ടപ്പെടുത്താതെ നിങ്ങളുടെ ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡിൽ ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറികൾ ഉപയോഗിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. പഴയ ജാവാസ്ക്രിപ്റ്റ് കോഡുമായോ അല്ലെങ്കിൽ സ്വന്തം ടൈപ്പ് ഡെഫനിഷനുകൾ നൽകാത്ത ലൈബ്രറികളുമായോ പ്രവർത്തിക്കുമ്പോൾ ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.
// custom.d.ts
declare module 'my-library' {
export function doSomething(x: number): string;
}
മികച്ച രീതികൾ
- സ്ട്രിക്റ്റ് മോഡ് ഉപയോഗിക്കുക: മെച്ചപ്പെട്ട ടൈപ്പ് ചെക്കിംഗിനായി
strict
ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കുക. - ടാർഗെറ്റ് വ്യക്തമാക്കുക: നിങ്ങളുടെ റൺടൈം എൻവയോൺമെന്റിനായി ഉചിതമായ
target
പതിപ്പ് തിരഞ്ഞെടുക്കുക. - ഔട്ട്പുട്ട് ഓർഗനൈസുചെയ്യുക: സോഴ്സ് കോഡിനെ കംപൈൽ ചെയ്ത കോഡിൽ നിന്ന് വേർതിരിക്കാൻ
outDir
ഉപയോഗിക്കുക. - ഡിപൻഡൻസികൾ കൈകാര്യം ചെയ്യുക: ഏതൊക്കെ ഫയലുകളാണ് കംപൈൽ ചെയ്യേണ്ടതെന്ന് നിയന്ത്രിക്കാൻ
include
,exclude
എന്നിവ ഉപയോഗിക്കുക. - Extends പ്രയോജനപ്പെടുത്തുക:
extends
ഓപ്ഷൻ ഉപയോഗിച്ച് പൊതുവായ കോൺഫിഗറേഷൻ ക്രമീകരണങ്ങൾ പങ്കിടുക. - വേർഷൻ കൺട്രോളിലേക്ക് കോൺഫിഗറേഷൻ ചെക്ക് ഇൻ ചെയ്യുക: ഡെവലപ്പർ എൻവയോൺമെന്റുകളിലും CI/CD പൈപ്പ്ലൈനുകളിലും സ്ഥിരത നിലനിർത്താൻ `tsconfig.json` git-ലേക്ക് കമ്മിറ്റ് ചെയ്യുക.
സാധാരണ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു
tsconfig.json
കോൺഫിഗർ ചെയ്യുന്നത് ചിലപ്പോൾ വെല്ലുവിളിയാകാം. ചില സാധാരണ പ്രശ്നങ്ങളും അവയുടെ പരിഹാരങ്ങളും ഇതാ:
മൊഡ്യൂൾ റെസല്യൂഷൻ പ്രശ്നങ്ങൾ
നിങ്ങൾക്ക് മൊഡ്യൂൾ റെസല്യൂഷൻ പിശകുകൾ നേരിടുകയാണെങ്കിൽ, moduleResolution
ഓപ്ഷൻ ശരിയായി കോൺഫിഗർ ചെയ്തിട്ടുണ്ടെന്നും baseUrl
, paths
ഓപ്ഷനുകൾ ശരിയായി സജ്ജീകരിച്ചിട്ടുണ്ടെന്നും ഉറപ്പാക്കുക. paths
ഓപ്ഷനിൽ വ്യക്തമാക്കിയ പാതകൾ ശരിയാണോ എന്ന് രണ്ടുതവണ പരിശോധിക്കുക. node_modules
ഡയറക്ടറിയിൽ ആവശ്യമായ എല്ലാ മൊഡ്യൂളുകളും ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.
ടൈപ്പ് പിശകുകൾ
ടൈപ്പ് ഡെഫനിഷനുകൾ തെറ്റാണെങ്കിലോ കാണാതാവുകയാണെങ്കിലോ ടൈപ്പ് പിശകുകൾ സംഭവിക്കാം. നിങ്ങൾ ഉപയോഗിക്കുന്ന എല്ലാ ലൈബ്രറികൾക്കും ശരിയായ ടൈപ്പ് ഡെഫനിഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. ടൈപ്പ് ഡെഫനിഷനുകൾ ഇല്ലാത്ത ഒരു ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറിയാണ് നിങ്ങൾ ഉപയോഗിക്കുന്നതെങ്കിൽ, കസ്റ്റം ടൈപ്പ് ഡെഫനിഷനുകൾ ഉണ്ടാക്കുന്നത് പരിഗണിക്കുക.
കംപൈലേഷൻ പിശകുകൾ
നിങ്ങളുടെ ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡിൽ സിന്റാക്സ് പിശകുകളോ ടൈപ്പ് പിശകുകളോ ഉണ്ടെങ്കിൽ കംപൈലേഷൻ പിശകുകൾ സംഭവിക്കാം. പിശക് സന്ദേശങ്ങൾ ശ്രദ്ധാപൂർവ്വം അവലോകനം ചെയ്യുകയും ഏതെങ്കിലും സിന്റാക്സ് പിശകുകളോ ടൈപ്പ് പിശകുകളോ പരിഹരിക്കുകയും ചെയ്യുക. നിങ്ങളുടെ കോഡ് ടൈപ്പ്സ്ക്രിപ്റ്റ് കോഡിംഗ് കൺവെൻഷനുകൾ പാലിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക.
ഉപസംഹാരം
വിജയകരമായ ഒരു ടൈപ്പ്സ്ക്രിപ്റ്റ് പ്രോജക്റ്റിന് നന്നായി കോൺഫിഗർ ചെയ്ത tsconfig.json
ഫയൽ അത്യാവശ്യമാണ്. അത്യാവശ്യമായ കംപൈലർ ഓപ്ഷനുകളും നൂതന കോൺഫിഗറേഷനുകളും മനസ്സിലാക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് നിങ്ങളുടെ ഡെവലപ്മെന്റ് വർക്ക്ഫ്ലോ ഒപ്റ്റിമൈസ് ചെയ്യാനും കോഡ് നിലവാരം മെച്ചപ്പെടുത്താനും ടാർഗെറ്റ് എൻവയോൺമെന്റുമായി പൊരുത്തം ഉറപ്പാക്കാനും കഴിയും. tsconfig.json
ശരിയായി കോൺഫിഗർ ചെയ്യുന്നതിൽ സമയം നിക്ഷേപിക്കുന്നത് പിശകുകൾ കുറയ്ക്കുന്നതിലൂടെയും പരിപാലനം മെച്ചപ്പെടുത്തുന്നതിലൂടെയും ബിൽഡ് പ്രോസസ്സ് കാര്യക്ഷമമാക്കുന്നതിലൂടെയും ദീർഘകാലാടിസ്ഥാനത്തിൽ പ്രയോജനം ചെയ്യും. ഇത് കൂടുതൽ കാര്യക്ഷമവും വിശ്വസനീയവുമായ സോഫ്റ്റ്വെയർ ഡെവലപ്മെന്റിന് കാരണമാകുന്നു. ഇവിടെ നൽകിയിരിക്കുന്ന വിവരങ്ങൾ സാർവത്രികമായി ബാധകമാക്കാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്, കൂടാതെ ടൈപ്പ്സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഒരു പുതിയ പ്രോജക്റ്റ് ആരംഭിക്കുന്നതിന് ഇത് ഒരു ഉറച്ച അടിത്തറ നൽകണം.
ലഭ്യമായ എല്ലാ കംപൈലർ ഓപ്ഷനുകളെക്കുറിച്ചുള്ള ഏറ്റവും പുതിയ വിവരങ്ങൾക്കും വിശദമായ വിശദീകരണങ്ങൾക്കുമായി ഔദ്യോഗിക ടൈപ്പ്സ്ക്രിപ്റ്റ് ഡോക്യുമെന്റേഷൻ പരിശോധിക്കാൻ ഓർക്കുക. ടൈപ്പ്സ്ക്രിപ്റ്റ് കോൺഫിഗറേഷന്റെ സങ്കീർണ്ണതകൾ മനസ്സിലാക്കുന്നതിനുള്ള ഒരു വിലയേറിയ വിഭവമാണ് ടൈപ്പ്സ്ക്രിപ്റ്റ് ഡോക്യുമെന്റേഷൻ.