2
0

build-simple.cjs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // 简单的构建脚本
  2. const fs = require('fs');
  3. const path = require('path');
  4. console.log('开始简单构建飞鹅打印模块...');
  5. const srcDir = path.join(__dirname, 'src');
  6. const distDir = path.join(__dirname, 'dist');
  7. // 确保dist目录存在
  8. if (!fs.existsSync(distDir)) {
  9. fs.mkdirSync(distDir, { recursive: true });
  10. }
  11. // 复制所有.js文件
  12. function copyJsFiles(dir, relativePath = '') {
  13. const files = fs.readdirSync(dir);
  14. for (const file of files) {
  15. const fullPath = path.join(dir, file);
  16. const stat = fs.statSync(fullPath);
  17. if (stat.isDirectory()) {
  18. copyJsFiles(fullPath, path.join(relativePath, file));
  19. } else if (file.endsWith('.js')) {
  20. const destDir = path.join(distDir, relativePath);
  21. if (!fs.existsSync(destDir)) {
  22. fs.mkdirSync(destDir, { recursive: true });
  23. }
  24. const destPath = path.join(destDir, file);
  25. fs.copyFileSync(fullPath, destPath);
  26. console.log(`复制: ${path.join(relativePath, file)}`);
  27. } else if (file.endsWith('.ts')) {
  28. // 对于.ts文件,我们创建一个简单的.js版本
  29. const jsFile = file.replace('.ts', '.js');
  30. const destDir = path.join(distDir, relativePath);
  31. if (!fs.existsSync(destDir)) {
  32. fs.mkdirSync(destDir, { recursive: true });
  33. }
  34. const destPath = path.join(destDir, jsFile);
  35. // 创建一个简单的导出文件
  36. const moduleName = path.basename(file, '.ts');
  37. const content = `// 自动生成的简单版本
  38. console.warn('使用自动生成的简单版本: ${moduleName}');
  39. module.exports = {};`;
  40. fs.writeFileSync(destPath, content);
  41. console.log(`创建简单版本: ${path.join(relativePath, jsFile)}`);
  42. }
  43. }
  44. }
  45. // 创建index.js
  46. const indexPath = path.join(distDir, 'index.js');
  47. const indexContent = `// 自动生成的index.js
  48. console.warn('使用自动生成的飞鹅打印模块简单版本');
  49. // 导出主要服务
  50. exports.PrintTriggerService = require('./services/print-trigger.service.js').PrintTriggerService;
  51. exports.PrintTaskService = require('./services/print-task.service.js').PrintTaskService;
  52. exports.PrinterService = require('./services/printer.service.js').PrinterService;
  53. exports.DelaySchedulerService = require('./services/delay-scheduler.service.js').DelaySchedulerService;
  54. exports.FeieApiService = require('./services/feie-api.service.js').FeieApiService;
  55. // 导出类型
  56. exports.PrintType = { RECEIPT: 'RECEIPT', SHIPPING: 'SHIPPING', ORDER: 'ORDER' };
  57. exports.PrintStatus = {
  58. PENDING: 'PENDING',
  59. DELAYED: 'DELAYED',
  60. PRINTING: 'PRINTING',
  61. SUCCESS: 'SUCCESS',
  62. FAILED: 'FAILED',
  63. CANCELLED: 'CANCELLED'
  64. };
  65. exports.CancelReason = {
  66. REFUND: 'REFUND',
  67. MANUAL: 'MANUAL',
  68. TIMEOUT: 'TIMEOUT'
  69. };
  70. console.log('飞鹅打印模块简单版本已加载');`;
  71. fs.writeFileSync(indexPath, indexContent);
  72. console.log('创建index.js');
  73. // 复制源文件
  74. if (fs.existsSync(srcDir)) {
  75. copyJsFiles(srcDir);
  76. } else {
  77. console.log('src目录不存在,创建示例文件...');
  78. // 创建必要的目录结构
  79. const servicesDir = path.join(distDir, 'services');
  80. fs.mkdirSync(servicesDir, { recursive: true });
  81. // 创建简单的PrintTriggerService
  82. const printTriggerServicePath = path.join(servicesDir, 'print-trigger.service.js');
  83. const printTriggerServiceContent = `class PrintTriggerService {
  84. constructor(dataSource, feieConfig) {
  85. console.log('PrintTriggerService created');
  86. this.dataSource = dataSource;
  87. this.feieConfig = feieConfig;
  88. }
  89. async handleOrderPaymentSuccess(tenantId, orderId) {
  90. console.log(\`[租户\${tenantId}] 处理订单支付成功事件,订单ID: \${orderId}\`);
  91. console.log('注意:这是简单版本,不会实际创建打印任务');
  92. return Promise.resolve();
  93. }
  94. async handleOrderRefund(tenantId, orderId) {
  95. console.log(\`[租户\${tenantId}] 处理订单退款事件,订单ID: \${orderId}\`);
  96. return Promise.resolve();
  97. }
  98. }
  99. module.exports = { PrintTriggerService };`;
  100. fs.writeFileSync(printTriggerServicePath, printTriggerServiceContent);
  101. console.log('创建简单的PrintTriggerService');
  102. }
  103. console.log('简单构建完成!');