חיפשתי וקראתי את המסמכים אבל לא הצלחתי למצוא את הפתרון המדויק, גם חיפשתי תבניות וקוד בסיסי.
איך להשתמש ב-turborepo בלי להשתמש ב-TypeScript? יש לכם הערות על זה חבר'ה?
אני לא רוצה להשתמש ב-TypeScript כי זה מסובך למתחיל כשפרויקט מתרחב.
קרא עוד →
אני מפתח סדרה של חבילות עבור TypeScript כחלק מפרויקט Turborepo. דוגמה למבנה הייבוא של החבילות הללו תהיה
import { Test } from "package-name" import { Test } from "package-name/Test"הבעיה שאני נתקל בה עם זה היא שבפיתוח עם Turborepo אני יכול להתייחס ל
קרא עוד →
הקמתי פרויקט חדש בגרסה האחרונה של TurboRepo. בתיקיית 'apps', יצרתי פרויקט Vite חדש באמצעות התבנית 'react-swc-ts'. שיניתי את הקובץ 'tsconfig.json' של פרויקט ה-Vite:
/* Import */ "baseUrl": "./src", "paths": { "~/*": ["./*"] },והתקין את התוסף 'vite
קרא עוד →אז עבדתי על פרויקט שבו רציתי להגדיר את svgr בתוך חבילת tsup ב-turborepo.
זו התצורה שלי של tsup
import type { Options } from "tsup"; import { defineConfig } from "tsup"; export default defineConfig((options: Options) => ({ plugins: [], treeshake: true, splitting: true, entryPoints: ["./**/*.tsx"], // format: ["esm"], dts: true, minify: true, clean: true, externals: ["react"], ...options, })); קרא עוד →מנסה לבנות API של Express בתוך סביבת העבודה של pnpm turborepo.
ל-API יש את @my/shared כתלות שהיא חבילת עבודה מקומית.
לא הצלחתי לבנות את הגירסה בצורה נכונה. אני חושב שהדבר שאני צריך להיות מסוגל לעשות הוא לבנות את הספרייה המשותפת ולכלול אותה בפרויקט ה-API, אבל כדי לעשות זאת אני אצטרך להיות מסוגל לשנות את כל פקודות הייבוא כך שנוד יוכל למצוא את המודול כי הוא מיובא כ-@my/shared.
מבנה :
apps/ /api <- express (depends on @my/shared) packages/ /shared <- @my/ קרא עוד →אני מתקין מונורפו עבור כמה פרויקטי TypeScript שאני עובד עליהם ויש לי בעיות עם קיצור ייבוא. מבנה התיקיות שלי הוא כדלקמן
project/ apps/ streaming/ package.json tsconfig.json src/ handlers/ KafkaHandler.ts packages/ shared-utils/ package.json tsconfig.json src/ clients/ Kafka.ts tsconfig/ base.json { " קרא עוד →בתיעוד הרשמי לגבי חבילות פנימיות, מצוין שעליך לבצע טרנספילציה עבורן בקובץ next.config.js: transpilePackages: ['math-helpers'] (sharing-code).
גם, בדוגמאות המתחילות הנוכחיות (npx create-turbo@latest), @repo/ui מתורגמת ל-Next apps.
עם זאת, כל האפליקציות הבאות עובדות אפילו בלי להמיר חבילות פנימיות.
האם אתה צריך לבצע טרנספילינג של חבילות פנימיות ב-next.config? אם כן, למה? או שזה לא נדרש? אם לא, למה זה נעשה גם בתיעו
קרא עוד →אני נתקל בבעיה של אינפרנציה של טיפוס ב-TypeScript בהגדרת TurboRepo שלי, במיוחד כאשר אני משתמש בשיטות של Prisma בתוך שירותי NestJS. בחבילת השרת, יש לי קובץ export.d.ts שמייצא טיפוסים עבור שיטות שונות של בקר ו-DTOs. עם זאת, TypeScript לא מצליח להסיק טיפוסים מלאים כאשר משתמשים בשיטות של Prisma, מה שמוביל להגדרות טיפוס לא מלאות כאשר משתמשים בהן בחבילת ה-frontend.
סביבת עבודה של שרת:
// export.d.ts import { AuthController } from './auth.controller'; import { S קרא עוד →יש לי מונורפו שמשתמש ב-Turborepo שיש לו פונקציית Lambda שתלויה בחבילה פנימית. בעצם, משהו כמו המבנה הבא...
השירות הוא "resize" והוא תלוי ב"@repo/image".
services resize package.json Dockerfile src index.ts packages image package.json src helper.tsזה כמובן מפושט
קובץ הדוקר עבור שירות "resize" נראה כך (מבוסס על דוגמת הדוקר מ- turborepo)...
FROM public.ecr.aws/lambda/nodejs:20 as base FROM base AS builde קרא עוד →ניסיתי לסכם ככל יכולתי. בפועל, בכל פעם שאני מבצע פריסה ו-Vercel בונה, הבנייה נכשלה בציון שהחבילות הפנימיות לא יכולות להימצא.
אם אני מבצע פריסה ידנית ובוחר באפשרות לבטל את המטמון, זה עובד מצוין. ניסיתי להוסיף את משתנה הסביבה לפריסת Vercel כדי לבטל את מטמון Turbo בזמן הבנייה. עשיתי זאת עם מפתח VERCEL_FORCE_NO_BUILD_CACHE וערך של 1.
יומני הבנייה למטה. כל עזרה תתקבל בברכה:
[18:56:07.701] Running build in Washington, D.C., USA (East) – iad1 [18:5 קרא עוד →