2017-06-05 80 views
0

我一直在尋找網絡和StackOverflow爲此一段時間沒有成功。如何配置ESLint,使其不允許默認導出

我試圖做有ESLint標誌着以下爲錯誤:

export default ...; 

default是這裏的關鍵。到目前爲止,我所得到的最好的是對eslint-plugin-import插件及其一些規則的引用,這些規則可以使我更接近目標,即no-anonymous-default-export規則。但是,即使這個規則下面的默認出口將是有效的:

const foo = 123 
export default foo 

export default class MyClass() {} 

export default function foo() {} 

我怎麼能以這樣的方式,這四個也將被視爲錯誤配置ESLint?

+0

有沒有這樣的規則。其實我們有[相反的](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/prefer-default-export.md),如果你只有一個導出的符號,它應該默認。 – Sylwester

+0

@Sylwester這正是我的印象,但這對我們的代碼庫並不理想 – Dethariel

+0

@Dhahariel您能否澄清您在代碼庫中使用默認導出所面臨的特定問題?我想不出爲什麼他們應該有問題,我想幫你避免XY問題。 –

回答

2

你可以用no-restricted-syntax rule來做到這一點。嘗試在demo粘貼此嘗試一下(你需要改變「源類型」爲「模塊」之首選項):

/* eslint "no-restricted-syntax": ["error", { 
    "selector": "ExportDefaultDeclaration", 
    "message": "Prefer named exports" 
    }] */ 
export default class Foo { } // 5:1 - Prefer named exports (no-restricted-syntax)