node.js - פתרון נתיבים יחסיים באפליקציית Nodejs ללא שרת ב-Typescript
יש לנו אפליקציית NodeJS שכתובה ב-TypeScript. אנחנו משתמשים במודולים באמצעות נתיבים יחסיים, לדוגמה
import foo from '@/bar';
יש לנו את הזנת הנתיבים הבאים ב-tsconfig.json
"paths": {
"@/*": [
"./*"
]
}
מכיוון של-TypeScript אין תמיכה בהמרת נתיבים, אנחנו משתמשים ב-ttypescript כדי לקמפל ולהחליף את tsconfig.json ב-tsconfig.build.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"plugins": [
{
"transform": "@zerollup/ts-transform-paths"
}
]
},
"exclude": ["node_modules/**", "tests/**"]
}והשתמש ב-yarn כדי לבנות את הקוד
yarn clean && ttsc --project ./tsconfig.build.json
כעת זה בונה את הקוד וממיר את הנתיבים היחסיים של @module לנתיבים מוחלטים.
לאחר מכן אנחנו משתמשים במסגרת Serverless כדי לבנות ולפרוס את הקוד הזה כ-Lambda. Serverless משתמש ב-tsconfig.json כדי לבנות את הקוד ולהתעלם באופן יעיל מהטרנספורמציה של הנתיב המותאמת אישית.
שאלה :
- האם אפשר לפתור את הבעיה שלמעלה בלי להשתמש ב-TypeScript ותוסף?
- האם אפשר להגדיר את serverless להשתמש ב-ttypescript ו-tsconfig מותאם אישית
- יש דרך אחרת לפתור את הבעיה?
תודה