eslint 抱怨 __dirname 没有在 NodeJS 文件中定义
eslint complains about __dirname not being defined in a NodeJS file
我刚开始使用 eslint。我初始化它并开始修复它指出的问题。
然而,有一个问题,它不应该抱怨:
const data = fs.readFileSync(path.join(__dirname, _FILENAME));
错误是:
error '__dirname' is not defined
我做了一些搜索,发现当您将 --experimental
添加到节点命令时, __dirname
未定义。然而,这对我来说并非如此。我不是带有 --experimental
标志的 运行 节点。
查看这些问题:
- __dirname is not defined in nodejs
发生这种情况是因为 ESLint 不知道您的代码应该在 Node.js 中使用:__dirname
未在浏览器中定义,也未在 ES 模块中定义。要告诉 ESLint 您的代码将 运行 in Node.js 作为 CommonJS 模块,请打开您的 ESLint 配置并在 env
部分设置 node: true
。如果您使用 .eslintrc.json:
{
"env": {
"node": true
}
}
还有其他指定环境的方法,它们在 related documentation.
中进行了解释
我运行成一样。将此添加到 .eslintrc.json 为我修复了它:
"globals": {
"__dirname": true
}
从这个关于 process
全局的类似问题中得到灵感:
我刚开始使用 eslint。我初始化它并开始修复它指出的问题。 然而,有一个问题,它不应该抱怨:
const data = fs.readFileSync(path.join(__dirname, _FILENAME));
错误是:
error '__dirname' is not defined
我做了一些搜索,发现当您将 --experimental
添加到节点命令时, __dirname
未定义。然而,这对我来说并非如此。我不是带有 --experimental
标志的 运行 节点。
查看这些问题:
- __dirname is not defined in nodejs
发生这种情况是因为 ESLint 不知道您的代码应该在 Node.js 中使用:__dirname
未在浏览器中定义,也未在 ES 模块中定义。要告诉 ESLint 您的代码将 运行 in Node.js 作为 CommonJS 模块,请打开您的 ESLint 配置并在 env
部分设置 node: true
。如果您使用 .eslintrc.json:
{
"env": {
"node": true
}
}
还有其他指定环境的方法,它们在 related documentation.
中进行了解释我运行成一样。将此添加到 .eslintrc.json 为我修复了它:
"globals": {
"__dirname": true
}
从这个关于 process
全局的类似问题中得到灵感: