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 כדי לבנות את הקוד ולהתעלם באופן יעיל מהטרנספורמציה של הנתיב המותאמת אישית.

שאלה :

  1. האם אפשר לפתור את הבעיה שלמעלה בלי להשתמש ב-TypeScript ותוסף?
  2. האם אפשר להגדיר את serverless להשתמש ב-ttypescript ו-tsconfig מותאם אישית
  3. יש דרך אחרת לפתור את הבעיה?

תודה