Я пытаюсь реализовать HMR в гибридном угловом приложении, используя стратегию downgradeModule, и это просто терпит неудачу. Я пришел сюда из другой проблемы Может ли гибридное приложение Angular 5/1.x поддерживать HMR?, потому что нет принятого ответа, а ответ @scipper не может работать, я думаю (пояснение ниже).
Я настроил конфигурацию веб-пакета (не ng-cli, пользовательскую конфигурацию) с помощью HMR (добавлено new webpack.HotModuleReplacementPlugin(), добавлено devServer.hot:true и другие вещи), и я вижу, что он работает, мой входной файл перезагружается без полной перезагрузки страницы с новыми источниками и горячим применением веб-пакета. обновляется очень хорошо, но приложения angular и angularjs не работают (работают со старым кэшированным кодом).
Мой план:
1) добавить модуль горячего принятия в файл записи .
2) уничтожить приложение angular.js, если оно существует (с уничтожением $rootScope?).
3) уничтожить корневой узел приложения angular.js, если он существует.
4) построить угловой модуль с кодом вроде
// bootstrap you new Angular 7 main module
const bootstrapFn = (extraProviders) => {
const platformRef = platformBrowserDynamic(extraProviders);
return platformRef.bootstrapModule(MyAngularSevenModule);
};
const downgradedModule = downgradeModule(bootstrapFn);
5) вызвать или повторно вызвать модуль angularjs и зависимости + мой модуль angular - это моя главная проблема, я думаю.
6) загрузите приложение angularjs (или $compile + $digest).
Уже пробовал:
- https://github.com/PatrickJS/angular-hmr - не работает из-за стратегии downgradeModule (корневой узел - ajs).
- https://github.com/vitaliy-bobrov/angular-hot-loader - много ошибок из-за провайдера и других перехватчиков не реализовано.
- https://github.com/noppa/ng-горячая перезагрузка
Я ожидал, что bootstrap обновит кешированные объекты angular, но после перезагрузки hmr angular использует старые контроллеры/компоненты/директивы (со свежим кодом на вкладке исходного кода).
Какие-либо предложения?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У меня неправильные настройки в файле ввода, @scipper был прав, он работает. Но с этой тактикой мы перезагружаем все приложение (и теряем любое состояние), я хочу найти решение для перезапуска только измененной части.
Можете ли вы объяснить, что именно вы сделали, чтобы добиться этого?