javascript - ESLint - 'process' nie je definovaný
Používam ESLinter pre jednoduchý Node projekt. Nižšie je jediný kód, ktorý mám v súbore 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);
Používam editor VSCode. Automaticky spúšťa ESLint pre JS kód.
V IDE vidím nižšie uvedenú chybu pre predposledný riadok -
[eslint] 'process' is not defined. (no-undef)
Máš nejakú predstavu, čo je zle?
Odpoveď č. 1
Keď sa mi vyskytla chyba, mal som "browser": true namiesto "node": true.
Toto som opravil nasledujúcou konfiguráciou pre súbor .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
}
}
Vďaka @FelixKling a @Jaromanda X za rýchle odpovede.
Odpoveď č. 2
Pridanie „node“: „true“ do existujúceho zoznamu prostredí tiež splní úlohu
"env": {
"node": true,
"commonjs": true,
"browser": true,
"es6": true
}
Odpoveď č. 3
Pridajte súbor .eslintrc do koreňa vášho projektu (ak ho ešte nemáte) a definujte globálne premenné, ktoré sa majú ignorovať
{
"globals": {
"process": true
}
}
Uistite sa, že používate process.env po celom projekte, ale iba v jednom konfiguračnom súbore. Zvážte pridanie pravidla no-process-env.
https://eslint.org/docs/rules/no-process-env
Odpoveď č. 4
Ak máte nainštalovaný eslint, pridajte env: { node: true } do súboru .eslintrc.js
Odpoveď č. 5
V novom konfiguračnom súbore ESLint eslint.config.js bola vlastnosť env odstránená, takže by ste mali použiť vlastnosť languageOptions.globals:
import globals from 'globals';
export default [
{
languageOptions: {
globals: {
...globals.node,
}
}
}
];
Odpoveď č. 6
Táto konfigurácia mi pomohla a môže pomôcť aj ostatným.
{
"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"],
}
}
