簡體   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