ESLint - 未定义“进程”
Posted
技术标签:
【中文标题】ESLint - 未定义“进程”【英文标题】:ESLint - 'process' is not defined 【发布时间】: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 代码? 你可能没有正确配置 eslint。 eslint.org/docs/user-guide/configuring#specifying-environments 谢谢@FelixKling - 我不去查看 .eslintrc.json 文件真是太愚蠢了。我不小心选择了browser default global variables
。您的链接向我暗示了这一点。现在,错误消失了!
【参考方案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-env
rule。
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"
。
尽管这不是绝对必要的,但无论如何人们都可以争辩说这是更好的做法。
【讨论】:
以上是关于ESLint - 未定义“进程”的主要内容,如果未能解决你的问题,请参考以下文章