Visual Studio Code - איך להגדיר פרויקט TypeScript, VScode, Yarn2, Fastify
אני יודע שפעם פתרתי את זה, אבל אולי הנוף השתנה מאז. אני מנסה להקים פרויקט חדש בעיקר באמצעות Fastify, מתכנת ב-VSCode ב-TypeScript ומנהל תלותים עם Yarn2.
VSCode אומר לי שהוא לא מצליח למצוא את fastify. הוא גם לא מצליח למצוא את סוגי ה-Node למרות שהוספתי גם את fastify וגם את @types/node. ניסיתי מספר גרסאות וצעדים מהדברים הבאים, וידאתי שאני משתמש בגרסת TypeScript של סביבת העבודה של VSCode, עדכנתי את קובץ tsconfig.json להשתמש ב-node moduleResolution, וכו'. מה שהיה עובד בעבר כבר לא עובד יותר, אבל לא מצאתי פוסט אחד או מסמך עדכני שמסדר את הבעיה.
מה אני מפספס?
nvm install node ## Install latest NodeJS
node --version > .nvmrc ## Set the node version to use
yarn init -y ## Project initialization
yarn set version berry ## Use yarn v2
yarn add --dev typescript ## TypeScript all the way
yarn add --dev ts-node ## Easier Ts script or task execution
yarn plugin import typescript ## Magic?
yarn add --dev @types/node ## Node types
yarn add --dev @yarnpkg/pnpify ## Emulate ./node_modules
yarn pnpify --sdk vscode ## Setup workspace/environment
yarn tsc --init -t ES2020 ## Generate tsconfig.json
yarn add fastify ## Add fastify dep
חבילת.json
{
"name": "server",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"@yarnpkg/pnpify": "^2.2.1",
"ts-node": "^9.0.0",
"typescript": "^4.0.3"
},
"dependencies": {
"fastify": "^3.4.1"
}
}
עדכון: למרות שעניתי להנחיית VSCode להשתמש בגרסת TypeScript של סביבת העבודה, גיליתי שאני עדיין צריך לציין אותה באופן ידני דרך ctrl+shift+p > Select TypeScript version... לאחר שעשיתי זאת, הבעיה משתנה מעט. ללא קשר למילת המפתח import, אני רואה עכשיו בעיית namespace:
תשובה #1
נאבקתי גם בניסיון להריץ את fastify. התברר שהבעיה היא שאתה צריך להריץ את fastify עם yarn node (שם הסקריפט שלך). מכיוון שה-yarn החדש ביטל את ספריית node_modules, הוא לא מצליח למצוא אותה. אבל yarn יצר פתרון עקיפי להריץ שם "yarn node" וזה פותר את הבעיה. אני לא יודע איך זה עובד בעצם.


