簡體   English   中英

MaterialUI 的自定義 ESLint 導入規則

[英]Custom ESLint Import Rule for MaterialUI

我在 React 中有一個項目,使用 Material UI,我正在應用他們建議的方法之一來減少我的包大小。

基本上,我需要安裝babel-plugin-transform-imports package 並更新我們導入組件的方式:

// Replace this (Option 1):
import Button from "@material-ui/core/Button";
// Whith this (Option 2):
import { Button } from "@material-ui/core";

一切正常,但是,我想防止將來出現“錯誤”的導入(選項 1)。

有沒有辦法自定義 ESLint 規則,在從 Material UI package 導入時強制選項 2 導入?

我正在閱讀有關創建自定義 ESLint 規則的信息,但希望避免使用該路線。

據我所知,定制是您唯一的選擇。 這些語法之間的唯一區別是導入默認導出或命名導出。 因此,如果要防止特定於material-ui軟件包的默認導入,則您需要創建一個自定義eslint規則,該規則查看導入語句並與material-ui匹配,因為您不想對所有默認導入都出錯。

經過研究,我發現Material UI使用自己的自定義ESLint規則創建了一個包:

NPM軟件包:

https://www.npmjs.com/package/eslint-plugin-material-ui

GitHub頁面:

https://github.com/mui-org/material-ui/tree/master/packages/eslint-plugin-material-ui

他們有一條規則可以解決我的問題( restricted-path-imports ),但是該規則尚未發布。 當他們發布它時,這可能是我的最佳選擇。

有關發布規則的討論:

https://github.com/mui-org/material-ui/issues/15610#issuecomment-512804075

2022 年更新

@kajirikajiri實際上正是為此制作了 eslint 插件!

https://github.com/kajirikajiri/eslint-plugin-mui-path-imports

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM