在 TypeScript 中找不到名称 ‘__dirname’ 错误 [已解决]

在 TypeScript 中找不到名称“ _ _ dirname”错误

Cannot find name ‘__dirname’ Error in TypeScript

要解决错误“找不到名称_ _ dirname”,请node通过运行安装 typings npm i -D @types/node

如果错误未解决,请尝试添加node到您的types阵列
tsconfig.json并重新启动您的 IDE。

找不到名称目录名错误

安装 Node.js 的类型

在项目的根目录(文件所在的位置)中打开终端
package.json并运行以下命令来安装 Node.js 的类型。

npm i -D @types/node

如果错误仍然存​​在,请尝试重新启动 IDE。

将类型添加到文件types中的数组tsconfig.json

如果这没有帮助,请确保文件types中的数组tsconfig.json包含"node".

tsconfig.json文件
{ "compilerOptions": { "types": [ // ... your other types "node" ], }, }

那应该可以解决您项目中的错误。

索引.ts
import * as path from 'path'; // 👇️ "/home/borislav/Desktop/typescript" console.log(__dirname); // 👇️ "/home/borislav/Desktop/typescript/src/another-file.ts" console.log(path.join(__dirname, './another-file.ts'));

指定types选项时,只有列出的包将包含在全局范围内。

上面的例子确保我们包含,所以我们有全局变量的类型。 ./node_modules/@types/node __dirname

如果types您的文件中未指定tsconfig.json,则所有@types包都包含在您的编译中 – node_modules/@types/*.

删除你的 node_modules 并重新安装你的依赖项

如果错误未解决,请尝试删除您的node_modules
package-lock.json文件,重新运行npm install并重新启动您的 IDE。

# 👇️ delete node_modules and package-lock.json (Windows) rd /s /q "node_modules" del package-lock.json del -f yarn.lock # 👇️ delete node_modules and package-lock.json (macOS/Linux) rm -rf node_modules rm -f package-lock.json rm -f yarn.lock # 👇️ clean npm cache npm cache clean --force npm install

如果错误仍然存​​在,请确保重新启动 IDE 和开发服务器。

全局__dirname变量带有 Node.js 类型,因此通过安装包npm i -D @types/node应该可以解决问题。