@slcy/eslint-config
Version:
ESLint config for @slcy
389 lines (388 loc) • 8.31 kB
JavaScript
const e = {
curly: ["error", "all"],
// 强制所有控制语句使用大括号
"no-console": "off",
"prefer-const": "error"
}, r = {
// 用于检查导入的模块是否能被解析(即是否存在这个模块路径
"import/no-unresolved": "off",
// 导入后强制换行
"import/newline-after-import": "error",
// 防止重复导入同一模块
"import/no-duplicates": "error",
// 导入排序规则(核心功能)
"import/order": [
"error",
{
// 每个分组之间强制空一行,提高可读性
"newlines-between": "always",
alphabetize: {
// 同一组内模块名按字母升序排列
order: "asc",
// 忽略大小写
caseInsensitive: !0
},
groups: [
// Node.js 的内建模块,如 fs, path
"builtin",
// 第三方模块
"external",
// 项目中内部定义的模块,如别名路径(如 @/utils)
"internal",
// 父级路径模块,如 ../utils
"parent",
// 当前目录兄弟模块,如 ./Button
"sibling",
// 当前目录的 index.js/ts
"index"
]
}
],
// import 语句内部成员排序
"sort-imports": [
"error",
{
// 排序时忽略大小写。
ignoreCase: !0,
// 不强制排序 import 声明之间的顺序
ignoreDeclarationSort: !0,
// 强制排序 import 中的成员
ignoreMemberSort: !1
}
]
}, t = {
"no-this-alias": "off",
"no-unused-vars": [
"error",
{
args: "all",
// 检查所有函数参数
vars: "all",
// 检查所有未使用的变量
caughtErrors: "none",
// 忽略捕获的错误
argsIgnorePattern: "^_"
// 忽略以 _ 开头的函数参数
}
]
}, u = {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-this-alias": "off",
// TypeScript 中禁止未使用的变量
"@typescript-eslint/no-unused-vars": [
"error",
{
args: "all",
// 检查所有函数参数
vars: "all",
// 检查所有未使用的变量
caughtErrors: "none",
// 忽略捕获的错误
argsIgnorePattern: "^_"
// 忽略以 _ 开头的函数参数
}
]
}, s = {
"vue/multi-word-component-names": "off",
"vue/no-multiple-template-root": "off",
"vue/no-v-html": "off"
}, o = {
EffectScope: !0,
ElForm: !0,
ElMessage: !0,
ElMessageBox: !0,
ElTree: !0,
asyncComputed: !0,
autoResetRef: !0,
computed: !0,
computedAsync: !0,
computedEager: !0,
computedInject: !0,
computedWithControl: !0,
controlledComputed: !0,
controlledRef: !0,
createApp: !0,
createEventHook: !0,
createGlobalState: !0,
createInjectionState: !0,
createReactiveFn: !0,
createSharedComposable: !0,
createUnrefFn: !0,
customRef: !0,
debouncedRef: !0,
debouncedWatch: !0,
defineAsyncComponent: !0,
defineComponent: !0,
eagerComputed: !0,
effectScope: !0,
extendRef: !0,
getCurrentInstance: !0,
getCurrentScope: !0,
h: !0,
ignorableWatch: !0,
inject: !0,
isDefined: !0,
isProxy: !0,
isReactive: !0,
isReadonly: !0,
isRef: !0,
makeDestructurable: !0,
markRaw: !0,
nextTick: !0,
onActivated: !0,
onBeforeMount: !0,
onBeforeUnmount: !0,
onBeforeUpdate: !0,
onClickOutside: !0,
onDeactivated: !0,
onErrorCaptured: !0,
onKeyStroke: !0,
onLongPress: !0,
onMounted: !0,
onRenderTracked: !0,
onRenderTriggered: !0,
onScopeDispose: !0,
onServerPrefetch: !0,
onStartTyping: !0,
onUnmounted: !0,
onUpdated: !0,
pausableWatch: !0,
provide: !0,
reactify: !0,
reactifyObject: !0,
reactive: !0,
reactiveComputed: !0,
reactiveOmit: !0,
reactivePick: !0,
readonly: !0,
ref: !0,
refAutoReset: !0,
refDebounced: !0,
refDefault: !0,
refThrottled: !0,
refWithControl: !0,
resolveComponent: !0,
resolveDirective: !0,
resolveRef: !0,
resolveUnref: !0,
shallowReactive: !0,
shallowReadonly: !0,
shallowRef: !0,
syncRef: !0,
syncRefs: !0,
templateRef: !0,
throttledRef: !0,
throttledWatch: !0,
toRaw: !0,
toReactive: !0,
toRef: !0,
toRefs: !0,
triggerRef: !0,
tryOnBeforeMount: !0,
tryOnBeforeUnmount: !0,
tryOnMounted: !0,
tryOnScopeDispose: !0,
tryOnUnmounted: !0,
unref: !0,
unrefElement: !0,
until: !0,
useActiveElement: !0,
useArrayEvery: !0,
useArrayFilter: !0,
useArrayFind: !0,
useArrayFindIndex: !0,
useArrayFindLast: !0,
useArrayJoin: !0,
useArrayMap: !0,
useArrayReduce: !0,
useArraySome: !0,
useArrayUnique: !0,
useAsyncQueue: !0,
useAsyncState: !0,
useAttrs: !0,
useBase64: !0,
useBattery: !0,
useBluetooth: !0,
useBreakpoints: !0,
useBroadcastChannel: !0,
useBrowserLocation: !0,
useCached: !0,
useClipboard: !0,
useCloned: !0,
useColorMode: !0,
useConfirmDialog: !0,
useCounter: !0,
useCssModule: !0,
useCssVar: !0,
useCssVars: !0,
useCurrentElement: !0,
useCycleList: !0,
useDark: !0,
useDateFormat: !0,
useDebounce: !0,
useDebounceFn: !0,
useDebouncedRefHistory: !0,
useDeviceMotion: !0,
useDeviceOrientation: !0,
useDevicePixelRatio: !0,
useDevicesList: !0,
useDisplayMedia: !0,
useDocumentVisibility: !0,
useDraggable: !0,
useDropZone: !0,
useElementBounding: !0,
useElementByPoint: !0,
useElementHover: !0,
useElementSize: !0,
useElementVisibility: !0,
useEventBus: !0,
useEventListener: !0,
useEventSource: !0,
useEyeDropper: !0,
useFavicon: !0,
useFetch: !0,
useFileDialog: !0,
useFileSystemAccess: !0,
useFocus: !0,
useFocusWithin: !0,
useFps: !0,
useFullscreen: !0,
useGamepad: !0,
useGeolocation: !0,
useIdle: !0,
useImage: !0,
useInfiniteScroll: !0,
useIntersectionObserver: !0,
useInterval: !0,
useIntervalFn: !0,
useKeyModifier: !0,
useLastChanged: !0,
useLocalStorage: !0,
useMagicKeys: !0,
useManualRefHistory: !0,
useMediaControls: !0,
useMediaQuery: !0,
useMemoize: !0,
useMemory: !0,
useMounted: !0,
useMouse: !0,
useMouseInElement: !0,
useMousePressed: !0,
useMutationObserver: !0,
useNavigatorLanguage: !0,
useNetwork: !0,
useNow: !0,
useObjectUrl: !0,
useOffsetPagination: !0,
useOnline: !0,
usePageLeave: !0,
useParallax: !0,
usePermission: !0,
usePointer: !0,
usePointerLock: !0,
usePointerSwipe: !0,
usePreferredColorScheme: !0,
usePreferredContrast: !0,
usePreferredDark: !0,
usePreferredLanguages: !0,
usePreferredReducedMotion: !0,
usePrevious: !0,
useRafFn: !0,
useRouter: !0,
useRoute: !0,
useRefHistory: !0,
useResizeObserver: !0,
useScreenOrientation: !0,
useScreenSafeArea: !0,
useScriptTag: !0,
useScroll: !0,
useScrollLock: !0,
useSessionStorage: !0,
useShare: !0,
useSlots: !0,
useSorted: !0,
useSpeechRecognition: !0,
useSpeechSynthesis: !0,
useStepper: !0,
useStorage: !0,
useStorageAsync: !0,
useStyleTag: !0,
useSupported: !0,
useSwipe: !0,
useTemplateRefsList: !0,
useTextDirection: !0,
useTextSelection: !0,
useTextareaAutosize: !0,
useThrottle: !0,
useThrottleFn: !0,
useThrottledRefHistory: !0,
useTimeAgo: !0,
useTimeout: !0,
useTimeoutFn: !0,
useTimeoutPoll: !0,
useTimestamp: !0,
useTitle: !0,
useToNumber: !0,
useToString: !0,
useToggle: !0,
useTransition: !0,
useUrlSearchParams: !0,
useUserMedia: !0,
useVModel: !0,
useVModels: !0,
useVibrate: !0,
useVirtualList: !0,
useWakeLock: !0,
useWebNotification: !0,
useWebSocket: !0,
useWebWorker: !0,
useWebWorkerFn: !0,
useWindowFocus: !0,
useWindowScroll: !0,
useWindowSize: !0,
watch: !0,
watchArray: !0,
watchAtMost: !0,
watchDebounced: !0,
watchEffect: !0,
watchIgnorable: !0,
watchOnce: !0,
watchPausable: !0,
watchPostEffect: !0,
watchSyncEffect: !0,
watchThrottled: !0,
watchTriggerable: !0,
watchWithFilter: !0,
whenever: !0
}, n = {
meta: {
// name: pkg.name,
// version: pkg.version
},
rules: {},
configs: {
recommended: {
rules: {}
},
import: {
rules: r
},
base: {
rules: e
},
js: {
rules: t
},
ts: {
rules: u
},
vue: {
rules: s,
autoImport: o
}
},
processors: {}
};
export {
n as default
};