解决TypeError: this.cliEngine is not a constructor问题 并解决eslint\bin\eslint-plugin.js___jb_tmp___ (拒绝访问)

导读:本篇文章讲解 解决TypeError: this.cliEngine is not a constructor问题 并解决eslint\bin\eslint-plugin.js___jb_tmp___ (拒绝访问),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题

今天打开webStorm,准备编写index.tsx文件,便遇到如下问题:

TypeError: this.cliEngine is not a constructor

TypeError: this.cliEngine is not a constructor
    at ESLintPlugin.invokeESLint (D:\software\WebStorm 2019.1\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint-plugin.js:97:25)
    at ESLintPlugin.getErrors (D:\software\WebStorm 2019.1\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint-plugin.js:76:21)
    at ESLintPlugin.onMessage (D:\software\WebStorm 2019.1\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint-plugin.js:42:29)
    at Interface.<anonymous> (D:\software\WebStorm 2019.1\plugins\JavaScriptLanguage\jsLanguageServicesImpl\js-language-service.js:105:39)
    at Interface.emit (events.js:375:28)
    at Interface._onLine (readline.js:364:10)
    at Interface._normalWrite (readline.js:509:12)
    at Socket.ondata (readline.js:216:10)
    at Socket.emit (events.js:375:28)
    at addChunk (internal/streams/readable.js:290:12)
Process finished with exit code -1

即下图文件:

在这里插入图片描述
遇到问题不要着急,一步一步进行如下分析。

分析问题

找到原文件

分析上述报错信息中的第一行: at ESLintPlugin.invokeESLint (D:\software\WebStorm 2019.1\plugins\JavaScriptLanguage\languageService\eslint\bin\eslint-plugin.js:97:25)

它说问题出现在eslint-plugin.js文件的第97行,如下图所示:

在这里插入图片描述

然而,实际问题不是这一行。

定位问题所在的位置

我们需要在eslint-plugin.js文件中搜索如下代码:

this.cliEngine = require(packagePath + "lib/cli-engine");

搜索结果如下图所示,大概在32行的位置:
在这里插入图片描述
将这行代码this.cliEngine = require(packagePath + "lib/cli-engine");替换成如下代码:

this.cliEngine = require(packagePath + "lib/cli-engine").CLIEngine;

ctrl + s保存时,却出现如下问题:

在这里插入图片描述

分析拒绝访问的问题

因为,我们没有权限修改eslint-plugin.js文件 ,需要使用管理员权限修改这个文件。

解决问题

找到原文件路径

我们首先定位到eslint-plugin.js文件所在的路径,即我的电脑的这个路径(你们的电脑可能是其他路径,你们视情况而定。)D:\software\WebStorm 2019.1\plugins\JavaScriptLanguage\languageService\eslint\bin\,如下图所示:

在这里插入图片描述

修改原文件

我们不能直接在该目录下直接修改,因为需要管理员权限才能修改该文件,因而,我们需要把文件移到桌面去修改,如下图所示:

在这里插入图片描述

修改完成后,把该文件移到原目录下,以替换原文件即可,如下图所示:

在这里插入图片描述

重新打开webStorm

  • 关闭已打开的webStorm:
    在这里插入图片描述

  • 再次重新打开webStorm,发现没有报错信息了。

在这里插入图片描述

其他解决方案

以上可能没有解决你的问题,你的问题可能是下面这种情况:

在这里插入图片描述

那么你可以按照上述方式,将eslint-plugin.js的如下代码:

this.cliEngine = require(this.basicPath + "lib/cli-engine");

替换成:

this.CLIEngine = require(this.basicPath + "lib/cli-engine");

重启编辑器即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99189.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!