2017-05-06 45 views
1

我正在使用Intellij IDEA開發Node.js應用程序。 我在前端使用es5,在後端使用es6。intellij想法中的多個ECMA腳本版本

有沒有辦法爲每個文件夾定義ECMAScript級別?

感謝

+0

每個文件夾都有不同的.eslintrc。 – estus

+0

這適用於eslint,但我仍然在前端獲得像'var used,而不是let或const'這樣的Intellij錯誤。 – LandoR

+0

對此也有嚴格的規定。 http://eslint.org/docs/rules/no-var。據我所知,IDE依賴eslint。 – estus

回答

1

如果使用多個版本的ECMAScript,然後共同點應該挑選的項目,ECMAScript 6

JetBrains的集成開發環境依靠ESLint爲掉毛,所以不同.eslintrc配置可以每個文件夾被提供,即

{ 
    "env": { 
     "es6": false, 
     ... 
    }, 
    "extends": "eslint:recommended", 
    "rules": { 
     "no-var": 0, 
     ... 
    } 
} 

爲前端,和

{ 
    "env": { 
     "es6": true, 
     ... 
    }, 
    "extends": "eslint:recommended", 
    "rules": { 
     "no-var": 1, 
     ... 
    } 
} 

爲後端。

在這種情況下,所有干擾ESLint規則的檢查都應該是disabled,如var used instead of let or const

+1

這不是一個正確的答案,最初的問題是關於Webstorm自己的檢查,而不是ESLint。如果像'var而不是let或const'這樣的檢查是唯一的問題,那麼解決方案就是設置檢查範圍。但是,在JavaScript版本設置爲'ES5'的項目中使用ES6語法時,禁用檢查或設置範圍將無助於擺脫語法錯誤,例如 – lena

+0

@lena它解決了用戶擁有的問題,即維護在一個項目中有幾個具有不同ES版本和規則集的根。我相信這是現在如何做的唯一方式(我自己做過)。我有一種感覺,IDE本身至少在內部使用ESLint進行一些檢查,例如'var used ...'。不確定在依靠ESLint而不是檢查相交規則時是否存在缺陷,我沒有看到。我不知道你的答案爲什麼被刪除,它不能幫助解決問題,而是準確回答問題。 – estus

+1

我可以確定IDE在內部不使用ESLint(儘管它可以通過ESLint集成運行)。而且,正如我所提到的,設置ESLint對內置的檢查/詞法分析器問題沒有幫助 – lena