| 1234567891011121314151617181920212223242526 |
- #!/usr/bin/env node
- /**
- * 提取 .vue 的 <script> 块并 node --check 语法校验
- * 用法: node scripts/check-vue-script.js <file...>
- */
- const fs = require('fs');
- const cp = require('child_process');
- const os = require('os');
- const path = require('path');
- for (const f of process.argv.slice(2)) {
- if (!fs.existsSync(f)) { console.log('SKIP(not found):', f); continue; }
- const src = fs.readFileSync(f, 'utf8');
- const m = src.match(/<script>([\s\S]*?)<\/script>/);
- if (!m) { console.log('NO SCRIPT:', f); continue; }
- const tmp = path.join(os.tmpdir(), 'check_' + Math.random().toString(36).slice(2) + '.js');
- fs.writeFileSync(tmp, m[1], 'utf8');
- try {
- cp.execFileSync('node', ['--check', tmp], { stdio: 'pipe' });
- console.log('OK :', f);
- } catch (e) {
- console.log('FAIL:', f);
- console.log(String(e.stderr || '').slice(0, 600));
- }
- fs.unlinkSync(tmp);
- }
|