【问题标题】:ESLint - 'process' is not definedESLint - 未定义“进程”
【发布时间】:2018-11-26 09:16:48
【问题描述】:

我将 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)

有什么问题吗?

【问题讨论】:

  • ESLINT 是否有某种方式通知它您正在检查 nodejs 代码?
  • 谢谢@FelixKling - 我不去查看 .eslintrc.json 文件真是太愚蠢了。我不小心选择了browser default global variables。您的链接向我暗示了这一点。现在,错误消失了!

标签: javascript node.js visual-studio-code eslint


【解决方案1】:

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

我已通过 .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
    }
}

当我遇到错误时,我得到的是 "browser": true 而不是 "node": true。简单的错误。

【讨论】:

  • 这摆脱了我的 ESlint 'URL' 也没有定义。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        这个配置帮助了我,也可以帮助其他人

        {
          "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"],
          },
        }
        

        【讨论】:

          【解决方案6】:

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

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

          };

          【讨论】:

            【解决方案7】:

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

            尽管这不是绝对必要的,但无论如何人们都可以争辩说这是更好的做法。

            【讨论】:

              猜你喜欢
              • 2018-02-12
              • 2021-02-28
              • 2018-09-22
              • 2018-09-29
              • 2022-08-14
              • 2017-01-23
              • 2021-02-01
              • 2018-07-13
              相关资源
              最近更新 更多