خطای نوع - SvelteKit نحو TypeScript را شناسایی نمیکند
من یک پروژه SvelteKit با تایپاسکریپت دارم (با Vite تنظیم شده) که هنگام اجرای "npm run dev" به خوبی کار میکرد. با این حال، وقتی سعی کردم برنامه را روی Github Pages قرار دهم، این خطا در لوکال هاست نمایش داده شد وقتی که ماوس را روی تنها لینکم که شامل کد تایپاسکریپت بود بردم (صفحه هنگام هاور شدن روی لینک پیشبارگذاری میشود).
[plugin:vite-plugin-svelte] نشانه غیرمنتظره
[plugin:vite-plugin-svelte] C:/Users/mwnbo/source/repos/Svelte/chess-app/src/lib/Board.svelte:10:14 Unexpected token
C:/Users/mwnbo/source/repos/Svelte/chess-app/src/lib/Board.svelte:10:14
8 | import { get } from 'svelte/store';
9 |
10 | const testFen: string = 'rbq5/8/8/8/8/8/8/RBQ5';
^
11 | const kingTest: string = 'k7/8/8/8/8/8/8/K7';
12 | // let chessBoard = new ChessBoard(kingTest);
قطعه کد نشان داده شده در تصویر در یک کامپوننت Svelte است و در پوشه lib قرار دارد.
من میدانم مشکل این است که آن نحو TypeScript را تشخیص نمیدهد چون من قسمت ': string' کد را حذف کردم، و خطا در خط بعدی ظاهر شد.
سپس به Vercel منتقل شدم و فایل svelte.config.js را تغییر دادم تا از آداپتور Vercel همانطور که در مستندات ذکر شده بود استفاده کنم.
// svelte.config.js
import adapter from '@sveltejs/adapter-vercel';
export default {
kit: {
adapter: adapter()
}
};
همان خطا را نشان داد، هم در لوکالهاست و هم هنگام تلاش برای استقرار برنامه روی ورسل. آیا پیکربندی خاصی هست که باید اضافه کنم؟
پاسخ شماره ۱
پیشپردازش در svelte.config.js موجود نیست.
یا از vitePreprocess از افزونه استفاده کنید یا از svelte-preprocess جداگانه. همچنین شما نیاز به lang="ts" در اسکریپت دارید، در صورتی که آن نیز موجود نباشد.
اسولت ۵ باید از ویژگیهای پایهای تایپینگ TS بدون نیاز به پیشپردازنده جداگانه پشتیبانی کند (یعنی ویژگیهایی که تنها نیاز به حذف نوع دارند نه تبدیل مجدد، همانطور که برای مثال برای enum لازم است).
آداپتوری که استفاده میشود بیاهمیت است.