WebStorm 2018.1.4 + ESLint: TypeError: this.CliEngine 不是构造函数
Posted
技术标签:
【中文标题】WebStorm 2018.1.4 + ESLint: TypeError: this.CliEngine 不是构造函数【英文标题】:WebStorm 2018.1.4 + ESLint: TypeError: this.CliEngine is not a constructor 【发布时间】:2020-01-16 13:26:35 【问题描述】:我的配置是这样的。
WebStorm 2018.1.4; ESLint 6.4;节点 12.8; npm 6.10.2; Windows 8.1。
如何消除线程标题中的错误?
这是一个代码示例。
import
GET_DAILY_SUCCESS,
GET_HOURLY_SUCCESS,
GET_MINUTE_SUCCESS
from './types';
import
getDailyToUsd,
getHourlyToUsd,
getMinuteToUsd
from '../api/cryptocompare';
import setError from './error';
export const getDaily = (fsym = 'BTC') => async dispatch =>
try
const list = await getDailyToUsd(fsym);
dispatch(
type: GET_DAILY_SUCCESS,
currency: fsym,
list
);
catch(err)
dispatch(setError(err.Message));
;
【问题讨论】:
【参考方案1】:WEB-38922 在 2019.1.3 中修复。 问题在于 ESLint 版本 6.x。如果升级 Webstorm 不适合你,你必须降级到 ESLint 版本 5:
npm install --save-dev eslint@5
更新:如果您在使用 ESLint 8 时看到类似的错误,请确保升级到支持它的版本 2021.2.2(请参阅WEB-52236)
【讨论】:
为我工作(更新至 2021.2.2)。谢谢! 谢谢! Webstorm 2021.2.3 中没有错误 现在 Eslint 7 可以正常工作了。【参考方案2】:在我的 Webstorm 2021.2 中有一个稍微不同的错误this.CliEngineCtor is not a constructor
。
这与更新 eslint 到 8.0.1 有关。
解决方案:将 WebStorm 更新到最新版本 2021.2.2 或更高版本
【讨论】:
【参考方案3】:这是另一个solution from Dmitry Babenko,它可以让你使用带有 WebStorm 后备许可证的 ESLint 6.x:
等待this.CliEngine is not a constructor
气球出现,然后点击“详细信息” 按照堆栈跟踪中的第一个链接到eslint-plugin.js
文件 在顶部找到以下行:this.CliEngine = require(this.basicPath + "lib/cli-engine");
并将其替换为以下内容:this.CliEngine = require(this.basicPath).CLIEngine;
重启IDEA
【讨论】:
完美运行 我的看起来像这样... this.cliEngineCtor = requireInContext(eslintPackagePath + "lib/api", state.packageJsonPath).CLIEngine;【参考方案4】:我正在使用 Webstorm2021.2.1,我发现 eslint@8.0.0 与它不兼容。 这对我有用:
yarn add -D eslint@7.14.0
【讨论】:
【参考方案5】:除了Dabrule回答:
对于 eslint v8 替换此行:
this.cliEngineCtor = requireInContext(eslintPackagePath + "lib/api", state.packageJsonPath).CLIEngine;
到那个:
this.cliEngineCtor = requireInContext(eslintPackagePath + "lib/cli-engine").CLIEngine;
文件位置,例如RubyMine(WebStorm应该类似):
RubyMine-2021.1.3/plugins/javascriptLanguage/languageService/eslint/bin/eslint-plugin.js
【讨论】:
为我工作:RubyMine-2021.1.3。最棒的是,无需降级 ESLint,也无需升级 RubyMine / WebStorm。以上是关于WebStorm 2018.1.4 + ESLint: TypeError: this.CliEngine 不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章
部署反应应用程序时出错,它一直说 << Plugin "react" was conflicted between "package.json » eslin