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

npm ERR! code ELIFECYCLE

webstorm最新版怎么破解

如何破解webstorm2016.2.1

webstorm如何保存编码

webstorm2017 怎么破解