prepkg.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const fs = require('fs-extra');
  2. const path = require('path');
  3. const { execSync } = require('child_process');
  4. const platform = process.argv[2];
  5. const distDir = path.resolve(__dirname, '../dist');
  6. const tmpDir = `${distDir}/tmp`;
  7. const publicDir = `${tmpDir}/public`;
  8. const outDir = `${distDir}/${platform}`;
  9. async function build() {
  10. if (platform != 'linux' && platform != 'win')
  11. throw new Error(`Unknown platform: ${platform}`);
  12. await fs.emptyDir(outDir);
  13. // перемещаем public на место
  14. if (await fs.pathExists(publicDir)) {
  15. const zipFile = `${tmpDir}/public.zip`;
  16. const jsonFile = `${distDir}/public.json`;//distDir !!!
  17. await fs.remove(zipFile);
  18. execSync(`zip -r ${zipFile} .`, {cwd: publicDir, stdio: 'inherit'});
  19. const data = (await fs.readFile(zipFile)).toString('base64');
  20. await fs.writeFile(jsonFile, JSON.stringify({data}));
  21. } else {
  22. throw new Error(`publicDir: ${publicDir} does not exist`);
  23. }
  24. }
  25. async function main() {
  26. try {
  27. await build();
  28. } catch(e) {
  29. console.error(e);
  30. process.exit(1);
  31. }
  32. }
  33. main();