在 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'));
上面的例子确保我们包含,所以我们有全局变量的类型。
./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
应该可以解决问题。