Nativescript- vue + Typescript - HMR не работает на Vue Компонент класса - PullRequest
1 голос
/ 16 апреля 2020

Среда

  • CLI: 6.5.0
  • Кроссплатформенные модули: 6.5.1
  • Android Время выполнения: 6,5 .0
  • iOS Время выполнения: 6.5.0

Опишите ошибку

При сохранении любого файла с компонентом класса vue стиль + машинопись, он просто не обновляется. Дайте мне следующую ошибку:

File change detected. Starting incremental webpack compilation...
Successfully transferred bundle.609c813aedb0d81fb57e.hot-update.js on device emulator-5554.
Successfully transferred 609c813aedb0d81fb57e.hot-update.json on device emulator-5554.
JS: HMR: Checking for updates to the bundle with hmr hash 609c813aedb0d81fb57e.
JS: HMR: Ignored an update to unaccepted module: 
JS: HMR:          ➭ ./routes.ts
JS: HMR:          ➭ ./main.ts
JS: HMR: Cannot apply update with hmr hash 609c813aedb0d81fb57e.
JS: HMR: Aborted because ./routes.ts is not accepted
JS: Update propagation: ./routes.ts -> ./main.ts
Refreshing application on device emulator-5554...
Successfully transferred bundle.js on device emulator-5554.
Successfully transferred runtime.js on device emulator-5554.
Successfully transferred vendor.js on device emulator-5554.
JS: HMR: Cannot apply update. A previous update aborted. Application needs to be restarted in order to apply the changes.
Restarting application on device emulator-5554...

Это приводит к перезапуску всего приложения без обновления HRM.

Для воспроизведения

База на Блоги nativescript NativeScript- Vue с компонентами класса Дополнительные примеры по ссылке.

  1. npm install -g @ vue / cli @ vue / cli-init
  2. vue init nativescript-vue / vue -cli-template hmrbug. (Выберите Typescript)
  3. npm i vue -класс-компонент
  4. npm i vue -property-decorator

Далее: Создать следующий шаблон:

<Label text="Hello" textWrap="true" />

Затем добавьте привет к тексту

<Label text="Hello Hello" textWrap="true" />

Проверьте ошибку.

Ожидаемое поведение

Используйте знаменитый HMR без перезапуска всего приложения. Я считаю это серьезной проблемой или ошибкой, поскольку она замедляет вашу производительность как разработчика, ожидая перезапуска приложения.

1 Ответ

1 голос
/ 18 апреля 2020

Пожалуйста, используйте tns debug android --no-hmr

В nativescript- vue и HMR не гарантируется. HMR можно использовать только при внесении изменений в файлы стилей.

Мое личное использование

Я использую tns debug android только для стилизации. Если я делаю какие-либо другие изменения, я не доверяю HMR.

Я добавил скрипт пряжи с именем yarn devan для ускорения процесса ввода.

Я добавил следующие строки в свой пакет. json file

{
  "scripts": {
    "dev": "tns debug android",
    "devan": "tns debug android --no-hmr",
    "devin": "tns debug ios --no-hmr",
    "un": "adb uninstall com.domain.yourapp"
  },
}

Вы всегда будете видеть сообщение об ошибке HMR, если будете использовать файлы typescipt в проектах nativescript- vue.

JS: HMR: Checking for updates to the bundle with hmr hash 7d5f6392d6103f1496e6.
JS:  WARN  HMR: Ignored an update to unaccepted module: 
JS:  WARN  HMR:          ➭ ./routes/index.ts
JS:  WARN  HMR:          ➭ ./main.ts
JS:  ERROR  HMR: Cannot apply update with hmr hash 7d5f6392d6103f1496e6.
JS:  ERROR  HMR: Aborted because ./routes/index.ts is not accepted
JS: Update propagation: ./routes/index.ts -> ./main.ts
...