From f83761dd2a9301f7ea45d58ef20256e5cf658e7f Mon Sep 17 00:00:00 2001 From: qiang Date: Sat, 3 Feb 2024 12:10:23 +0800 Subject: [PATCH] style(eslint-config): add eslint rules to restrict the imports of lodash (#15773) * style(eslint-config): add eslint rules to restrict the imports of lodash * fix: lint error * test(components): [infinite-scroll] test error * test(components): [infinite-scroll] test error --- internal/build/src/tasks/full-bundle.ts | 5 +++-- internal/eslint-config/index.js | 15 +++++++++++++++ internal/metadata/src/contributor.ts | 2 +- .../__tests__/infinite-scroll.test.ts | 3 ++- packages/components/tour/src/step.vue | 2 +- packages/test-utils/define-getter.ts | 2 +- packages/test-utils/make-mount.ts | 2 +- packages/utils/__tests__/arrays.test.ts | 2 +- 8 files changed, 25 insertions(+), 8 deletions(-) diff --git a/internal/build/src/tasks/full-bundle.ts b/internal/build/src/tasks/full-bundle.ts index a46a3eaaec2cd..a14c2d1e695a7 100644 --- a/internal/build/src/tasks/full-bundle.ts +++ b/internal/build/src/tasks/full-bundle.ts @@ -8,7 +8,7 @@ import vueJsx from '@vitejs/plugin-vue-jsx' import esbuild, { minify as minifyPlugin } from 'rollup-plugin-esbuild' import { parallel } from 'gulp' import glob from 'fast-glob' -import { camelCase, upperFirst } from 'lodash' +import { camelCase, upperFirst } from 'lodash-unified' import { PKG_BRAND_NAME, PKG_CAMELCASE_LOCAL_NAME, @@ -24,6 +24,7 @@ import { writeBundles, } from '../utils' import { target } from '../build-info' +import type { TaskFunction } from 'gulp' import type { Plugin } from 'rollup' const banner = `/*! ${PKG_BRAND_NAME} v${version} */\n` @@ -154,7 +155,7 @@ async function buildFullLocale(minify: boolean) { export const buildFull = (minify: boolean) => async () => Promise.all([buildFullEntry(minify), buildFullLocale(minify)]) -export const buildFullBundle = parallel( +export const buildFullBundle: TaskFunction = parallel( withTaskName('buildFullMinified', buildFull(true)), withTaskName('buildFull', buildFull(false)) ) diff --git a/internal/eslint-config/index.js b/internal/eslint-config/index.js index 62bb77b2df8d8..542a3cb9cb74d 100644 --- a/internal/eslint-config/index.js +++ b/internal/eslint-config/index.js @@ -262,6 +262,21 @@ module.exports = defineConfig({ 'import/no-named-as-default': 'off', 'import/no-named-as-default-member': 'off', 'import/named': 'off', + 'no-restricted-imports': [ + 'error', + { + paths: [ + { name: 'lodash', message: 'Use lodash-unified instead.' }, + { name: 'lodash-es', message: 'Use lodash-unified instead.' }, + ], + patterns: [ + { + group: ['lodash/*', 'lodash-es/*'], + message: 'Use lodash-unified instead.', + }, + ], + }, + ], // eslint-plugin-eslint-comments 'eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], diff --git a/internal/metadata/src/contributor.ts b/internal/metadata/src/contributor.ts index f6cda5f8fd01a..d57d417815922 100644 --- a/internal/metadata/src/contributor.ts +++ b/internal/metadata/src/contributor.ts @@ -4,7 +4,7 @@ import glob from 'fast-glob' import { Octokit } from 'octokit' import consola from 'consola' import chalk from 'chalk' -import { chunk, mapValues, uniqBy } from 'lodash-es' +import { chunk, mapValues, uniqBy } from 'lodash-unified' import { ensureDir, errorAndExit, diff --git a/packages/components/infinite-scroll/__tests__/infinite-scroll.test.ts b/packages/components/infinite-scroll/__tests__/infinite-scroll.test.ts index d7b7394d0b58c..ac7b364c14abb 100644 --- a/packages/components/infinite-scroll/__tests__/infinite-scroll.test.ts +++ b/packages/components/infinite-scroll/__tests__/infinite-scroll.test.ts @@ -15,8 +15,9 @@ import makeScroll from '@element-plus/test-utils/make-scroll' import tick from '@element-plus/test-utils/tick' import InfiniteScroll, { DEFAULT_DELAY, SCOPE } from '../src' -vi.mock('lodash-unified', () => { +vi.mock('lodash-unified', async () => { return { + ...((await vi.importActual('lodash-unified')) as Record), throttle: vi.fn((fn) => { fn.cancel = vi.fn() fn.flush = vi.fn() diff --git a/packages/components/tour/src/step.vue b/packages/components/tour/src/step.vue index d6d0ceb5b1614..63ffe91d93f98 100644 --- a/packages/components/tour/src/step.vue +++ b/packages/components/tour/src/step.vue @@ -66,7 +66,7 @@