Daily harvest
  • Introduction
  • First Chapter
  • vue初次尝试
  • Chrome Performance Tools
  • React
    • react摸索之context
    • ant design 自定义form双向绑定组件
  • Npm
    • 【译】如何防止权限错误
    • Npm-rebuild
  • 基础概念
    • my blind spot of console.log()
    • 从别人那儿新学到的关于 require 和 import 的隐藏知识
    • LRUCache.ts
    • foobar variables
  • Nodejs
    • 【译】使用JSON Web Tokens保护Node.js的RESTful Api
  • Tools
    • 新学到的linux命令
    • webstorm eslint8 报错
  • Python
    • Mac python 虚拟环境
  • Algorithm
    • LeetCode 第 1 题
Powered by GitBook
On this page

Was this helpful?

  1. Tools

webstorm eslint8 报错

webstorm打开项目,索引文件时报错

this.cliEngineCtor is not a constructor

其他项目没问题,单独打开这个有问题,想到是版本问题,果然项目中依赖的eslint是^8版本,webstorm的eslint插件位置在(mac为例):

/Applications/WebStorm.app/Contents/plugins/JavaScriptLanguage/languageService 

打开目录下的eslint/src/eslint-plugin.ts

看到this.cliEngineCtor的赋值:

this.cliEngineCtor = requireInContext(eslintPackagePath + "lib/api", state.packageJsonPath).CLIEngine 

然后我们再回头看我们项目中依赖的eslint包,eslint8导出的CLIEngine 已经不在lib/api文件了,而是在lib/cli-engine文件导出的

所以把赋值做一下兼容:

this.cliEngineCtor = requireInContext(eslintPackagePath + "lib/api", state.packageJsonPath).CLIEngine ? 
  requireInContext(eslintPackagePath + "lib/api", state.packageJsonPath).CLIEngine : 
  requireInContext(eslintPackagePath + "lib/cli-engine", state.packageJsonPath).CLIEngine

因为是ts文件,所以需要执行npm run build 编译为js文件,可以看到bin/eslint-plugin.js已修改了。

重启webstorm,再打开刚才的项目,看到报错消失,说明已经找到了CLIEngine构造方法。

先解决问题。

Previous新学到的linux命令NextMac python 虚拟环境

Last updated 3 years ago

Was this helpful?