useHMR.js 770 B

1234567891011121314151617181920212223
  1. function useProdHMR() {
  2. return false;
  3. }
  4. let webpackHMR = false;
  5. function useDevHMR() {
  6. return webpackHMR;
  7. }
  8. export default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;
  9. // Webpack `module.hot.accept` do not support any deps update trigger
  10. // We have to hack handler to force mark as HRM
  11. if (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {
  12. const win = window;
  13. if (typeof win.webpackHotUpdate === 'function') {
  14. const originWebpackHotUpdate = win.webpackHotUpdate;
  15. win.webpackHotUpdate = function () {
  16. webpackHMR = true;
  17. setTimeout(() => {
  18. webpackHMR = false;
  19. }, 0);
  20. return originWebpackHotUpdate(...arguments);
  21. };
  22. }
  23. }