programing

ESLint - '프로세스'가 정의되지 않았습니다.

batch 2023. 8. 19. 09:59
반응형

ESLint - '프로세스'가 정의되지 않았습니다.

간단한 노드 프로젝트를 위해 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

eslint가 설치된 경우 추가env: { node: true }.eslintrc.js 파일로

이 구성은 저에게 도움이 되었고 다른 사람들에게도 도움이 될 수 있습니다.

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

노드 js 프로젝트에서 작업할 때.도움이 될 수도 있습니다.그것은 내 쪽에서 작동하고 있습니다.

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

설정 후에도 오류가 발생하는 경우 "node": true,설치하는 것을 기억합니다.@types/node와 함께

npm i -D @types/node

yarn add -D @types/node

다음 환경을 추가합니다..eslintrc.js파일.

module.exports = {
    "env": {
        "browser": true,
        "commonjs": true,
        "node": true,
        "es2021": true,
        "jest": true
    },
    "extends": "eslint:recommended",
    "parserOptions": {
        "ecmaVersion": "latest"
    },
    "rules": {
    }
}

새 ESLint 구성 파일 eslint.config.js에서env속성이 제거되었으므로 사용해야 합니다.languageOptions.globals속성:

import globals from 'globals';

export default [
  {
    languageOptions: {
      globals: {
        ...globals.browser
      }
    }
  }
];

이 문제에 대한 또 다른 해결책은 다음과 같습니다.import process from "process".

엄격하게 필요한 것은 아니지만, 어쨌든 그것이 더 나은 연습이라고 주장할 수 있습니다.

언급URL : https://stackoverflow.com/questions/50894000/eslint-process-is-not-defined

반응형