بررسی فایل Tsconfig.json
در زبان برنامه نویسی TypeScript می توان به منظور compile کردن یک پروژه به صورت کامل و در یک مرحله تک، یک فایل با نام tsconfig.json را در root directory مربوط به پروژه قرار داد. فایل tsconfig.json یک فایل ساده با فرمت json می باشد که از آن به منظور تنظیم کردن گزینه های مختلف استفاده میکنیم. برای مثال از این فایل می توانیم استفاده کنیم تا به compiler بگوییم در پروژه مورد نظر compile کردن را به چه شکل انجام بدهد. برای روشن تر شدن قضیه نیاز به یک مثال داریم. به این منظور به پروژه ای که در تصویر زیر مشاهده می کنید نگاه کنید.
این پروژه دارای دو فایل module و همچنین یک فایل namespace، یک فایل tsconfig و یک فایل html می باشد. در حال حاضر در فایل tsconfig هیچ دستور خاصی قرار نداده ایم. بنابراین در زمان compile کردن این پروژه compiler از تنظیمات پیش فرض استفاده می کند و تمامی فایل هایی که پسوند ts دارند و در root directory و sub-directory ها می باشند را compile می کند. کد زیر مثالی از این موضوع نشان میدهد.
D:\TypeScript>tsc
با اجرا کردن این کد compiler فایل های .js متناظر با تمامی فایل های .ts را شبیه به چیزی که در تصویر زیر می بینید ایجاد خواهد کرد.
در زمان استفاده کردن از دستور tsc به منظور compile کردن فایل های TypeScript اگر مسیر مربوط به فایل tsconfig.json تنظیم نشود compiler به دنبال این فایل در directory فعلی می گردد. اگر نتوانست این فایل را در مسیر فعلی پیدا کند به دنبال فایل مورد نظرش در parent directory خواهد گشت. اگر در فولدر پدر و یا parent directory نیز نتواند این فایل را پیدا کند، عملیات compile انجام نخواهد شد. به عبارت دیگر اگر compiler نتواند فایل tsconfig را پیدا کند عملیات compile کردن انجام نخواهد شد. اگر فایل tsconfig.json در root directory و یا فولدر ریشه قرار نداشته باشد میتوانیم با استفاده از دستور –project و یا -p شبیه به کد زیر آن را تنظیم کنیم.
tsc -p
تا به اینجای کار از یک فایل tsconfig خالی و بدون هیچ گونه تنظیمات خاصی استفاده نموده ایم. حال این که میتوانیم با لحاظ کردن تنظیمات مورد نظرمان عملیات compile شدن برنامه را تحت کنترل بگیریم. به منظور انجام این کار پروپرتی compilerOptions در فایل tsconfig.json را شبیه به کد زیر تنظیم کنید.
{
"compilerOptions":
{
"module":
"amd",
"noImplicitAny":
true,
"removeComments":
true,
"preserveConstEnums":
true,
"sourceMap":
true
}
}
همانطور که در مثال بالا مشاهده می کنید در قسمت compilerOptions از فایلtsconfig.json تنظیمات مربوط به compile شدن پروژه که compiler از آنها استفاده خواهد کرد را لحاظ کردهایم. وارد جزئیات مربوط به compilerOptions نمی شویم؛ اما فقط همین را بدانید که در این قسمت تنظیماتی را قرار می دهیم که در زمان compile کردن تک تک فایل ها با استفاده از دستور tsc نیز میتوانیم لحاظ کنیم. به عبارت دیگر در زمان compile کردن یک فایل TypeScript با استفاده از دستور tsc می توانیم با لحاظ کردن — و یا – گزینههای مختلف از قبیل –module و یا –m را لحاظ کنیم. همین موضوع دقیقاً بدون لحاظ کردن — و یا – در compilerOptions از فایل tsconfig.json لحاظ خواهد شد. علاوه بر این می توانیم با لحاظ کردن قسمت files فایل های مورد نظری که میخواهیم compiler آنها را compile کند را مشخص کنیم. این موضوع در کد زیرنشان داده شده است.
{
"compilerOptions":
{
"module":
"amd",
"noImplicitAny":
true,
"removeComments":
true,
"preserveConstEnums":
true,
"sourceMap":
true
},
"files":
{
"Employee.ts"
}
}
در مثال بالا فقط فایل Employee.ts در قسمت files لحاظ شده است. بنابراین compiler فقط این فایل را compile خواهد کرد. علاوه بر این، دو گزینه دیگر برای لحاظ کردن و یا صرف نظر کردن از فایل ها در روند compile شدن پروژه وجود دارد که include و exclude نام دارند. تمامی فایل های مشخص شده در قسمت include در روند compile شدن پروژه compile خواهند شد و تمامی فایل های لحاظ شده در قسمت exclude در زمان compile شدن پروژه compile نخواهند شد. نکته مهم دیگر اینکه اگر یک فایل که در قسمت include آمده است یک وابستگی و یا dependency بر روی یک فایل دیگر داشته باشد آن فایل که به عنوان dependency فایل اول وجود دارد نمی تواند در compile وجود نداشته باشد. به عبارت دیگر نمی توان آن را در قسمت exclude لحاظ کرد. این موضوع در کد زیر نشان داده شده است.
{"compilerOptions":
{
"module":
"amd",
"noImplicitAny":
true,
"removeComments":
true,
"preserveConstEnums":
true,
"outFile":
"../../built/local/tsc.js",
"sourceMap":
true
},
"include":
[
"src/**/*"
],
"exclude":
[
"node_modules",
"**/*.spec.ts"
]
}
پس تا به اینجای کار فرا گرفتیم که یک فایل tsconfig.json می تواند حاوی گزینه های مختلف برای کنترل کردن روند compile شدن پروژه باشد. در رابطه با فایل tsconfig.json نکات مختلف دیگری نیز وجود دارد که در این آموزش مجال پرداختن به تمامی آنها وجود ندارد.
منبع:وبسایت پرووید