繁体   English   中英

为什么 JetBrains IDE(IntelliJ IDEA、WebStorm 等)找不到模块 node_modules/standardx/lib/options?

[英]Why JetBrains IDEs (IntelliJ IDEA, WebStorm, etc) cannot find module node_modules/standardx/lib/options?

在单一存储库(Java + Typescript/JavaScript)中,我尝试配置 IntelliJ IDEA 2019.3.1(终极版)Build #IU-193.5662.53以使用 ESLint 和standardx ,如下图所示:

配置图片

正如你所看到的, standardx的版本被成功识别。 但是,当我打开一个 TypeScript/JavaScript 文件时,我收到来自 IntelliJ 的错误通知:

Initialization error (ESLint). Cannot find module '<project_base_direactory>/node_modules/standardx/lib/options'

如果我打开standardx节点模块目录,这是结构:

standardx 文件结构图

所以,

  • 为什么 IntelliJ 试图在standardx 中找到lib/options目录?
  • 我怎样才能摆脱这个错误并使 ESLint 与standardx一起工作?

tldr; standardstandardx x 只不过是 ESLint 配置包装器。 JetBrains公司不会增加standardxsemistandard因为他们认为,重新配置整个软件项目,在他们的IDE工作是答案,所有的球队的问题</ passiveaggressivevoice>。

在前面的示例中,我使用 Node.JS v14.15.5 及更高版本。 我看到两个选项。

选项 1:对于新项目,或standard linting 的新项目

我有一个 node.js 项目,它是严格的后端,需要管理错误规则,仅此而已,而且我使用 JSON 进行所有操作。

$ cd path/to/project
$ npm i --save-dev eslint
$ npx eslint --init
✔ How would you like to use ESLint? · style
✔ What type of modules does your project use? · esm
✔ Which framework does your project use? · none
✔ Does your project use TypeScript? · No / Yes
✔ Where does your code run? · node
✔ How would you like to define a style for your project? · guide
✔ Which style guide do you want to follow? · standard
✔ What format do you want your config file to be in? · JSON
Checking peerDependencies of eslint-config-standard@latest
The config that you've selected requires the following dependencies:

eslint-config-standard@latest eslint@^7.12.1 eslint-plugin-import@^2.22.1 eslint-plugin-node@^11.1.0 eslint-plugin-promise@^4.2.1
✔ Would you like to install them now with npm? · No / Yes
Installing eslint-config-standard@latest, eslint@^7.12.1, eslint-plugin-import@^2.22.1, eslint-plugin-node@^11.1.0, eslint-plugin-promise@^4.2.1

added 68 packages, and audited 350 packages in 3s

37 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
Successfully created .eslintrc.json file in /path/to/your/project

奖励积分:安装 Snazzy

$ npm i --save-dev snazzy

然后去绒。

$ npx eslint . | snazzy

...并且您在命令行中得到确认,因此现在通过将 ESLint 包指向~/path/to/your/project/node_modules/eslint并开始派对,在您的 JetBrains IDE(WebStorm、IntelliJ 等)中进行配置。

选项 2:您前往 JetBrains 并将您的加力燃烧器指向这两张票。

  1. https://youtrack.jetbrains.com/issue/WEB-31624 - semistandard
  2. https://youtrack.jetbrains.com/issue/WEB-29114 - standardx

我敢打赌,对于客户来说,拥有一个支持完整标准{x} 套件的 IDE 会简单得多,而不仅仅是一个被认为足够流行以作为例外集成的 IDE。

您可以通过在JavaScript 代码样式设置(代码样式 -> Javascript -> 设置自 -> 预定义代码样式)中选择预定义的代码样式,将 IDE 配置为根据 standardjs.com 的规则进行格式化。

如果除了 eslint 插件之外,您还希望获得 eslint-config-standard 提供的高亮显示,您可以在 UI 中选择 ESLint 包的路径并使用类似于以下内容的配置:

{
  "name": "standardx-security-test",
  "version": "0.0.1",
  "devDependencies": {
    "eslint": "~4.18.0",
    "eslint-config-standard": "11.0.0",
    "eslint-config-standard-jsx": "5.0.0",
    "eslint-plugin-import": "~2.9.0",
    "eslint-plugin-node": "~6.0.0",
    "eslint-plugin-promise": "~3.7.0",
    "eslint-plugin-react": "~7.7.0",
    "eslint-plugin-standard": "~3.0.1"
  },
  "eslintConfig": {
    "extends": [
      "standard",
      "standard-jsx"
    ]
  }
}

来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM