expo-duooomi-app/scripts/fix-glob.js

60 lines
1.7 KiB
JavaScript

const fs = require('fs');
const path = require('path');
try {
const globPackagePath = path.join(process.cwd(), 'node_modules', 'glob', 'package.json');
// 检查 glob 包是否存在
if (!fs.existsSync(globPackagePath)) {
console.log('⚠ glob 包不存在,跳过修复');
return;
}
const packageJson = JSON.parse(fs.readFileSync(globPackagePath, 'utf8'));
// 检查是否已经是正确的版本
if (packageJson.version === '13.0.0' && packageJson.main === 'dist/commonjs/index.js') {
console.log('✓ glob 包已正确配置');
return;
}
// 检查 dist/commonjs/index.js 是否存在
const distPath = path.join(process.cwd(), 'node_modules', 'glob', 'dist', 'commonjs', 'index.js');
if (!fs.existsSync(distPath)) {
console.log('⚠ glob@13.0.0 的文件结构不存在,跳过修复');
return;
}
// 修复 package.json
packageJson.version = '13.0.0';
packageJson.main = 'dist/commonjs/index.js';
packageJson.exports = {
'.': {
import: './dist/esm/index.js',
require: './dist/commonjs/index.js'
}
};
packageJson.engines = {
node: '20 || >=22'
};
packageJson.dependencies = {
minimatch: '^10.1.1',
minipass: '^7.1.2',
'path-scurry': '^2.0.0'
};
// 删除旧版本的字段
delete packageJson.publishConfig;
delete packageJson.files;
delete packageJson.devDependencies;
delete packageJson.tap;
delete packageJson.scripts;
fs.writeFileSync(globPackagePath, JSON.stringify(packageJson, null, 2), 'utf8');
console.log('✓ 已修复 glob 包配置');
} catch (error) {
console.error('✗ 修复 glob 包失败:', error.message);
// 不退出进程,因为这不是关键错误
}