main.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. 'use strict';
  2. const buildStart = require('./core/build-start');
  3. const beforeBuildFinish = require('./core/before-build-finish');
  4. const buildFinished = require('./core/build-finished');
  5. const setting = require('./core/build-setting');
  6. function onBuildStart (options, callback) {
  7. buildStart.handle(options);
  8. callback();
  9. }
  10. function onBeforeBuildFinish (options, callback) {
  11. beforeBuildFinish.handle(options);
  12. callback();
  13. }
  14. function onBuildFinished (options, callback) {
  15. buildFinished.handle(options);
  16. callback();
  17. }
  18. module.exports = {
  19. load () {
  20. // 侦听编译事件
  21. Editor.Builder.on('build-start', onBuildStart);
  22. Editor.Builder.on('before-change-files', onBeforeBuildFinish);
  23. Editor.Builder.on('build-finished', onBuildFinished);
  24. // 加载编译配置
  25. setting.getInstance().load();
  26. // this.loadVersionConfig(1000); // 编写插件是打开
  27. },
  28. unload () {
  29. Editor.Builder.removeListener('build-start', onBuildStart);
  30. Editor.Builder.removeListener('before-change-files', onBeforeBuildFinish);
  31. Editor.Builder.removeListener('build-finished', onBuildFinished);
  32. },
  33. loadVersionConfig (delay) {
  34. if (delay) {
  35. setTimeout(()=> {
  36. setting.getInstance().loadVersionConfig();
  37. }, delay);
  38. } else {
  39. setting.getInstance().loadVersionConfig();
  40. }
  41. },
  42. // register your ipc messages here
  43. messages: {
  44. 'open' () {
  45. Editor.Panel.open('build-helper');
  46. },
  47. 'panel-saved-setting' (event, config) {
  48. Editor.log('编译配置已更新');
  49. setting.getInstance().setConfig(config);
  50. },
  51. 'scene:ready' (event) {
  52. this.loadVersionConfig();
  53. },
  54. 'asset-db:asset-changed' (event) {
  55. // 延时更新版本配置
  56. this.loadVersionConfig(1000);
  57. }
  58. }
  59. };