وبپک - مهاجرت از react-jsx به typescript-tsx در ریاکت
من میخواهم از react-jsx ریاکت به typescript-tsx ریاکت مهاجرت کنم. از آنجایی که فایلهای زیادی برای تبدیل دارم، میخواهم این کار را به تدریج انجام دهم. میخواهم فایلهای قدیمی react-jsx را نگه دارم و برای ویژگیهای جدید در برنامهام از تایپاسکریپت استفاده کنم، سپس فایلهای قدیمی react-jsx را به tsx تبدیل کنم. آیا راهی وجود دارد که همزمان react-jsx را با Babel و tsx در یک فایل bundle در webpack کامپایل کرد؟
پاسخ شماره ۱
بله وجود دارد! در تنظیمات webpack خود کافی است که برای فایلهای *.jsx و *.tsx بارگذارهای مختلف مشخص کنید. در مواقعی که هم از تایپاسکریپت و هم از Babel استفاده میکنم، معمولاً سعی میکنم تایپاسکریپت JSX را حفظ کند و ماژولهای ES6 را خروجی دهد، سپس از Babel برای پردازش JSX استفاده میکنم. فایل .tsconfig شما چیزی شبیه به این خواهد بود:
{
"compilerOptions": {
"target": "es6",
"module": "es6",
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"jsx": "preserve",
"allowJs": false,
"moduleResolution": "node",
"lib": [
"dom",
"es7"
]
}
}
و لودرهای وبپک شما (فرض بر نسخه ۲) به این صورت خواهد بود:
{
test: /\.jsx?$/,
use: [{
loader: "babel-loader",
}],
exclude: /node_modules/,
},
{
test: /\.tsx?$/,
use: [
{
loader: "babel-loader"
},
{
loader: "ts-loader"
}
]
}
