main.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Usage:
  3. * node main.js -clean d:\myproject\assets d:\out.txt
  4. * node main.js -size d:\myproject\assets d:\out.txt
  5. * node main.js -mem d:\myproject\assets d:\out.txt
  6. */
  7. const AssetCleaner = require('./AssetCleaner');
  8. const AssetSize = require('./AssetSize');
  9. let command = process.argv[2];
  10. let sourceFile = process.argv[3];
  11. let destFile = process.argv[4];
  12. global._delete = process.argv.includes('-d') || process.argv.includes('-delete') // 删除未引用的资源
  13. global._excludes = process.argv.filter(n => n.includes('-e=') || n.includes('-excludes=')).map(node => { // 删除未引用的资源时,需要排除的文件或路径,支持字符串或正则
  14. let _i = node.replace('-e=', '')
  15. if (_i !== node) return _i
  16. _i = node.replace('-excludes=', '')
  17. if (_i !== node) return _i
  18. return ''
  19. })[0]
  20. let Version = 'AssetCleaner 1.1';
  21. let parseCommand = function(cmd) {
  22. if (!cmd || cmd.length <= 0) {
  23. console.error('main: command is invalid');
  24. return;
  25. }
  26. switch (cmd) {
  27. case '-clean':
  28. AssetCleaner.start(sourceFile, destFile);
  29. break;
  30. case '-size':
  31. AssetSize.start(sourceFile, destFile);
  32. break;
  33. default:
  34. let strHelp = Version + '\n' +
  35. 'Usage: node main.js <command>\n'+
  36. 'Examples:\n' +
  37. ' node main.js -clean d:/myproject/assets d:/out.txt\n' +
  38. ' node main.js -size d:/myproject/assets d:/out.txt';
  39. console.log(strHelp);
  40. break;
  41. }
  42. };
  43. parseCommand(command);