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
规则。
在处理节点 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
我正在将 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
规则。
在处理节点 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