visual studio code - Cách thiết lập dự án TypeScript, VScode, Yarn2, Fastify
Tôi biết tôi đã giải quyết vấn đề này trước đây, nhưng có lẽ bối cảnh đã thay đổi kể từ đó. Tôi đang cố gắng thiết lập một dự án mới chủ yếu sử dụng fastify, lập trình trong VSCode với TypeScript và quản lý các phụ thuộc bằng Yarn2.
VSCode đang báo cho tôi biết nó không thể tìm thấy fastify. Nó cũng không thể tìm thấy các loại Node mặc dù đã thêm cả fastify và @types/node. Tôi đã thử nhiều cách kết hợp và các bước sau đây, đảm bảo rằng tôi đang sử dụng phiên bản TypeScript trong workspace của VSCode, chỉnh sửa tsconfig.json để sử dụng node moduleResolution, v.v. Những gì từng hoạt động giờ không còn hiệu quả nữa, nhưng tôi chưa tìm thấy bất kỳ bài đăng hiện tại nào khác hoặc tài liệu nào giải quyết được vấn đề này.
Tôi đang bỏ lỡ điều gì?
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
package.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"
}
}
Cập nhật: Mặc dù đã trả lời lời nhắc của VSCode để sử dụng phiên bản TypeScript của workspace, tôi nhận ra rằng tôi vẫn cần phải chỉ định thủ công nó qua ctrl+shift+p > Chọn phiên bản TypeScript... Sau khi làm việc đó, vấn đề thay đổi một chút. Bất kể câu lệnh import, bây giờ tôi thấy vấn đề về namespace:
Câu trả lời #1
Tôi cũng gặp khó khăn khi cố gắng chạy fastify. Hóa ra vấn đề là bạn phải chạy fastify với yarn node (tên script của bạn). Vì yarn mới đã loại bỏ thư mục node-module nên nó không thể tìm thấy. nhưng yarn đã tạo một giải pháp tạm thời chạy ở đó "yarn node" khắc phục được vấn đề này. Tôi không biết cách này hoạt động như thế nào.


