// 票 56(第二轮):PanelBlocks.vue SFC 编译自检(t48-sfc-check 同款,只查本票改动文件)。 import { readFileSync } from 'node:fs' import { parse, compileScript, compileTemplate } from 'vue/compiler-sfc' const ROOT = new URL('../../../', import.meta.url) const rel = 'src/modules/cockpit/components/PanelBlocks.vue' const source = readFileSync(new URL(rel, ROOT), 'utf8') const { descriptor, errors } = parse(source, { filename: rel }) if (errors.length) { console.log(`FAIL parse — ${errors[0].message}`); process.exit(1) } try { compileScript(descriptor, { id: rel }) const tpl = compileTemplate({ source: descriptor.template.content, filename: rel, id: rel }) if (tpl.errors.length) throw new Error(tpl.errors[0]) console.log('PASS compile PanelBlocks.vue') } catch (error) { console.log(`FAIL compile — ${error.message}`) process.exit(1) }