/** * Vue 专属 flat config 片段 —— `eslint-plugin-vue` + 浏览器全局。 * * 只持有「Vue 包相对 node 预设额外需要的」默认数据:plugin-vue 的 flat 推荐配置 + * 浏览器运行时全局。与 node 预设是**数据拼接**关系(`presetVue = [...presetNode, ...vueBlocks]`), * 无运行时逻辑耦合(§4 职责边界)。 */ import pluginVue from 'eslint-plugin-vue' import { BROWSER_GLOBALS } from '../../../tools/eslint-rules/config.js' export { BROWSER_GLOBALS } /** * Vue flat config 片段数组(plugin-vue 的 flat 推荐 + 浏览器全局注入)。 * `eslint-plugin-vue` 的 `flat/recommended` 已是 flat config 数组,直接平铺。 * @returns {import('eslint').Linter.Config[]} */ export function buildVueBlocks() { const recommended = pluginVue.configs['flat/recommended'] || [] return [ ...recommended, { files: ['**/*.vue', '**/*.js'], languageOptions: { globals: { ...BROWSER_GLOBALS }, }, }, ] } /** plugin-vue 是否真的进了预设(供测试静态断言)。 */ export const VUE_PLUGIN_NAME = 'eslint-plugin-vue'