gpt4 book ai didi

typescript - 如何配置 VSCode 以运行 Yarn 2(使用 PnP)驱动的 TypeScript

转载 作者:行者123 更新时间:2023-12-04 11:48:37 26 4
gpt4 key购买 nike

如何配置 VSCode 以运行 Yarn 2(使用 PnP)驱动的 TypeScript
我喜欢使用 Yarn 2(带 PnP),几个月前我设置了一个运行良好的项目。现在我尝试设置一个新项目,但无论我尝试什么,我都无法让 VSCode 正确解析模块。旧项目仍然有效并且我的测试用例在其中正常工作,因此它必须是新项目而不是问题所在的 VSCode。
我的新项目设置如下:

mkdir my-project
cd my-project
npm install -g npm
npm install -g yarn
yarn set version berry
yarn init
yarn add --dev @types/node typescript ts-node prettier
yarn dlx @yarnpkg/pnpify --sdk vscode
cat <<'EOF' > tsconfig.json
{
"compilerOptions": {
"types": [
"node"
]
}
}
EOF
mkdir src
cat <<'EOF' > src/test.ts
process.once("SIGINT", () => process.exit(0));
EOF
我确实在 StackExchange 和其他地方检查过类似的问题,但它们归结为运行 pnpify并在 VSCode 中选择 TypeScript 版本作为其工作台 -pnpify版本,我都做了。我还确保预成型 Reload Window ,但我仍然收到以下错误:
tsconfig.json : 找不到“节点”的类型定义文件。
而在 test.ts : 找不到名称“进程”。你需要为节点安装类型定义吗?试试 npm i --save-dev @types/node然后添加 node到 tsconfig.js 中的 types 字段。
需要注意的是,我可以运行 test.ts没有任何问题,像这样: yarn ts-node src/test.ts .因此,问题似乎仅限于 VSCode 的工作台配置(VSCode 仍然可以为我的旧项目解析模块)。
我的设置中缺少哪些步骤才能使 Yarn 2(带有 PnP)驱动的 TypeScript 在 VSCode 中正常工作?
VSCode 相关信息:
Version: 1.51.1
Commit: e5a624b788d92b8d34d1392e4c4d9789406efe8f
Date: 2020-11-10T23:31:29.624Z
Electron: 9.3.3
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Linux x64 5.7.19
VSCode 中报告的 TypeScript 版本: 4.1.3-pnpify .
> cd my-project
> yarn --version
2.4.0
更新:我尝试添加 nodeLinker: node-modules.yarnrc.yml当我 Reload Window VSCode 不再报告错误并正确返回 NodeJS.Process当我悬停时 process在我的 test.ts .这至少表明大部分设置应该是正确的,并且它唯一的 PnP 给 VSCode 带来了麻烦。

最佳答案

昨晚我在迁移到 Yarn v2 并使用 PnP 时遇到了这个问题。

  • 确保运行后yarn dlx @yarnpkg/pnpify --sdk vscode以下文件夹结构是在您的 .yarn 中创建的目录:.yarn/sdks/typescript/lib .
  • 更改您的 VSCode 工作区配置以添加以下内容:"typescript.tsdk": ".yarn/sdks/typescript/lib"

  • 在 monorepo 中使用 Yarn 工作区时,我在第 1 步中也遇到了另一个问题,我必须安装 typescript , prettiereslint作为根包的 devDependencies(它通常没有任何依赖项)。在第 2 步中,我将路径更改为 frontend/.yarn/sdks/typescript/lib

    关于typescript - 如何配置 VSCode 以运行 Yarn 2(使用 PnP)驱动的 TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65328123/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com