package.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import fs from 'fs-extra';
  2. import path from 'path';
  3. import { fileURLToPath } from 'url';
  4. import readline from 'readline';
  5. import { execSync } from 'child_process';
  6. import {remove} from "fs-extra";
  7. const __filename = fileURLToPath(import.meta.url);
  8. const __dirname = path.dirname(__filename);
  9. let config = fs.readFileSync(path.join(__dirname, `src/content-scripts/config.json`), 'utf8');
  10. config = JSON.parse(config);
  11. // 生成英文插件
  12. try{
  13. removeDir(path.join(__dirname, `EasySpider_en`));
  14. } catch (e) {
  15. }
  16. config.language = "en";
  17. let data = JSON.stringify(config);
  18. // write JSON string to a file
  19. fs.writeFileSync(path.join(__dirname, `src/content-scripts/config.json`), data, (err) => {
  20. if (err) {
  21. throw err;
  22. }
  23. });
  24. execSync(`npm run build`, (error, stdout, stderr) => {
  25. if (error) {
  26. console.log(`error: ${error.message}`);
  27. return;
  28. }
  29. if (stderr) {
  30. console.log(`stderr: ${stderr}`);
  31. return;
  32. }
  33. console.log(`stdout: ${stdout}`);
  34. });
  35. fs.renameSync(path.join(__dirname, `dist/`), path.join(__dirname, `EasySpider_en`));
  36. execSync(`npm run crx EasySpider_en`, (error, stdout, stderr) => {
  37. if (error) {
  38. console.log(`error: ${error.message}`);
  39. return;
  40. }
  41. if (stderr) {
  42. console.log(`stderr: ${stderr}`);
  43. return;
  44. }
  45. console.log(`stdout: ${stdout}`);
  46. });
  47. fs.copyFileSync(path.join(__dirname, './EasySpider_en.crx'), path.join(__dirname, '../../ElectronJS/EasySpider_en.crx'));
  48. copyFolderSync(path.join(__dirname, './EasySpider_en'), path.join(__dirname, '../../ElectronJS/EasySpider_en'));
  49. // 生成中文插件
  50. try{
  51. removeDir(path.join(__dirname, `EasySpider_zh`));
  52. } catch (e) {
  53. }
  54. config.language = "zh";
  55. data = JSON.stringify(config);
  56. // write JSON string to a file
  57. fs.writeFileSync(path.join(__dirname, `src/content-scripts/config.json`), data, (err) => {
  58. if (err) {
  59. throw err;
  60. }
  61. });
  62. execSync(`npm run build`, (error, stdout, stderr) => {
  63. if (error) {
  64. console.log(`error: ${error.message}`);
  65. return;
  66. }
  67. if (stderr) {
  68. console.log(`stderr: ${stderr}`);
  69. return;
  70. }
  71. console.log(`stdout: ${stdout}`);
  72. });
  73. fs.renameSync(path.join(__dirname, `dist/`), path.join(__dirname, `EasySpider_zh`));
  74. execSync(`npm run crx EasySpider_zh`, (error, stdout, stderr) => {
  75. if (error) {
  76. console.log(`error: ${error.message}`);
  77. return;
  78. }
  79. if (stderr) {
  80. console.log(`stderr: ${stderr}`);
  81. return;
  82. }
  83. console.log(`stdout: ${stdout}`);
  84. });
  85. fs.copyFileSync(path.join(__dirname, './EasySpider_zh.crx'), path.join(__dirname, '../../ElectronJS/EasySpider_zh.crx'));
  86. copyFolderSync(path.join(__dirname, './EasySpider_zh'), path.join(__dirname, '../../ElectronJS/EasySpider_zh'));
  87. function removeDir(dir) {
  88. let files = fs.readdirSync(dir)
  89. for(var i=0;i<files.length;i++){
  90. let newPath = path.join(dir,files[i]);
  91. let stat = fs.statSync(newPath)
  92. if(stat.isDirectory()){
  93. //如果是文件夹就递归下去
  94. removeDir(newPath);
  95. } else {
  96. //删除文件
  97. fs.unlinkSync(newPath);
  98. }
  99. }
  100. fs.rmdirSync(dir)//如果文件夹是空的,就将自己删除掉
  101. }
  102. function copyFolderSync(source, target) {
  103. try {
  104. // 如果目标文件夹已存在,则先删除
  105. if (fs.existsSync(target)) {
  106. fs.removeSync(target);
  107. }
  108. // 复制文件夹
  109. fs.copySync(source, target);
  110. console.log('文件夹复制完成!');
  111. } catch (err) {
  112. console.error('复制文件夹时出错:', err);
  113. }
  114. }