טורבורפו Typescript לבנות אפליקציית Node עם תלותים של סביבת עבודה
מנסה לבנות API של Express בתוך סביבת העבודה של pnpm turborepo.
ל-API יש את @my/shared כתלות שהיא חבילת עבודה מקומית.
לא הצלחתי לבנות את הגירסה בצורה נכונה. אני חושב שהדבר שאני צריך להיות מסוגל לעשות הוא לבנות את הספרייה המשותפת ולכלול אותה בפרויקט ה-API, אבל כדי לעשות זאת אני אצטרך להיות מסוגל לשנות את כל פקודות הייבוא כך שנוד יוכל למצוא את המודול כי הוא מיובא כ-@my/shared.
מבנה :
apps/
/api <- express (depends on @my/shared)
packages/
/shared <- @my/shared
קובץ tsconfig בסיסי
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"checkJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"module": "CommonJS",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"noUncheckedIndexedAccess": true,
"composite": false,
"declaration": true,
"declarationMap": true,
"inlineSources": false,
"outDir": "./dist"
},
"exclude": ["node_modules", "build", "dist", ".next", ".expo"]
}
קונפיגורציות ts משותפות ומובעות
"extends": "../../tsconfig.json",
"compilerOptions": {
"baseUrl": "src",
"paths": {
"~/*": ["*"]
},
"module": "commonjs",
"outdir": "./dist"
},
"include": [
"src",
]
}
אני פשוט רוצה להמיר את אפליקציית ה-ts הזו ל-js כדי להריץ אותה במצב פרודקשן עם pm2.
מצאתי המון משאבים אך לא הצלחתי למצוא משהו שיעזור לי להשיג את זה.
ניסיתי להריץ את tsc מהשורש, והרצת הפלט ב-node נותנת את השגיאה:
`״שגיאה: לא ניתן למצוא את המודול 'express'״`
ניסיתי להריץ tsc ברמת ה-API מה שנותן את השגיאה הבאה כאשר מריצים pnpm ב-/dist כדי להתקין תלותים.
ERR_PNPM_WORKSPACE_PKG_NOT_FOUND: @my/sharedתשובה #1
היה לי בעיה דומה ומצאתי את ההפניה ובניתי את Express בהצלחה.
- https://github.com/Riley-Brown/turbo-repo-express-next-example
- https://github.com/vercel/turbo/tree/main/examples/kitchen-sink
אתה יכול להשתמש ב-tsup כדי לתרגם מחדש את המקור.