1

我知道我以前解决过这个问题,但也许从那时起情况发生了变化。我正在尝试主要使用 fastify、在 TypeScript 中使用 VSCode 进行编码以及使用 Yarn2 管理依赖项来设置一个新项目。

VSCode 告诉我它找不到 fastify。尽管同时添加了 fastify 和 @types/node,它也找不到 Node 类型。我已经尝试了以下许多排列和步骤,确保我使用的是 VSCode 工作区版本的 TypeScript,修改了 tsconfig.json 以使用节点 moduleResultion 等。以前工作的任何东西都不再工作了,但我没有t 找到解决该问题的其他当前帖子或文档。

我错过了什么?

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 > 选择 TypeScript 版本手动指定它... 这样做之后,问题发生了一些变化。无论导入语句如何,我现在都看到了命名空间问题: 在此处输入图像描述

4

1 回答 1

0

我也在努力尝试运行 fastify。事实证明,问题是你必须使用 yarn 节点(你的脚本名称)来运行 fastify。由于新纱线摆脱了节点模块目录,因此找不到它。但是yarn做了一个工作,在那里运行“yarn node”修复了这个问题,但我不知道它是如何工作的。

于 2022-01-09T14:09:43.363 回答