ESLint - 'process' 未定义

ESLint - 'process' is not defined

我正在将 ESLinter 用于一个简单的节点项目。下面是我在 index.js 中唯一的代码:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send({
        hi: 'there'
    });
});

const PORT = process.env.PORT || 5000;
app.listen(PORT);

我正在使用 VSCode 编辑器。它自动为 JS 代码运行 ESLint。

在 IDE 中,我看到最后一行出现以下错误 -

[eslint] 'process' is not defined. (no-undef)

知道哪里出了问题吗?

当我得到错误时我有 "browser": true 而不是 "node": true

我已经通过 .eslintrc.json 文件-

的以下配置解决了这个问题
{
    "env": {
        "node": true,
        "commonjs": true
    },
    "extends": "eslint:recommended",
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ]
    },
    "parserOptions": {
        "ecmaVersion": 2015
    }
}

感谢@FelixKling 和@Jaromanda X 的快速回复。

将 "node": "true" 添加到现有的环境列表中也可以完成这项工作

"env": {
        "node": true,
        "commonjs": true,
        "browser": true,
        "es6": true
       }

将 .eslintrc 文件添加到项目的根目录(如果您还没有)并定义要忽略的全局变量

{
    "globals": {
        "process": true
      }
}

确保在整个项目中使用 process.env,但仅在单个配置文件中使用。考虑添加 no-process-env 规则。

https://eslint.org/docs/rules/no-process-env

在处理节点 js 项目时。这可能对你有帮助。它对我有效

module.exports = {
"env": {
    "node": true,
    "browser": true,
    "commonjs": true,
    "es6": true
},
"extends": "eslint:recommended",
"globals": {
    "Atomics": "readonly",
    "SharedArrayBuffer": "readonly"
},
"parserOptions": {
    "ecmaVersion": 2018
},
"rules": {
}

};

这个配置对我有帮助,对其他人也有帮助

{
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true,
      "modules": true
    },
    "ecmaVersion": 2020,
    "sourceType": "module",
    "useJSXTextNode": true,
    "warnOnUnsupportedTypeScriptVersion": false
  },
  "root": true,
  "env": {
    "browser": true,
    "es6": true,
    "node": true,
    "commonjs": true
  },
  "extends": [ "eslint:recommended"],
  },
}

解决此问题的另一种方法是 import process from "process"

尽管这不是绝对必要的,但人们可以说这是更好的做法。

如果安装了 eslint,请将 env: { node: true } 添加到 .eslintrc.js 文件

如果您在设置 "node": true, 后仍然收到错误,请记住安装 @types/node

npm i -D @types/node

yarn add -D @types/node