NativeScript / nativescript-cli

Command-line interface for building NativeScript apps
https://www.npmjs.com/package/nativescript
Apache License 2.0
1.04k stars 195 forks source link

HMR doesn't work on IOS #5734

Open vallemar opened 1 year ago

vallemar commented 1 year ago

Issue Description

Applications created with cli 8.5.3 does not work the HMR on ios.

I am creating a sample that I create with cli 8.5.3 and in this application the HMR does not work on ios. To test this I have done the following.

  1. I have installed the old cli@8.4.0. I have created a vue3 application and the HMR works fine.
  2. I have installed the new cli 8.5.3. I have created an application vue3 and the HMR does not work on ios.

Environment

OS: macOS 13.3
CPU: (12) arm64 Apple M2 Max
Shell: /bin/zsh
node: 18.14.0
npm: 9.3.1
nativescript: 8.5.3

# android
java: 11.0.18
ndk: Not Found
apis: Not Found
build_tools: Not Found
system_images: Not Found

# ios
xcode: 14.3/14E222b
cocoapods: 1.11.3
python: 3.10.10
python3: 3.10.10
ruby: 2.7.7
platforms: 
  - DriverKit 22.4
  - iOS 16.4
  - macOS 13.3
  - tvOS 16.4
  - watchOS 9.4

Dependencies

"dependencies": {
  "@nativescript/core": "~8.4.0",
  "nativescript-vue": "3.0.0-beta.5"
},
"devDependencies": {
  "@nativescript/ios": "8.5.1",
  "@nativescript/tailwind": "^2.0.1",
  "@nativescript/types": "~8.4.0",
  "@nativescript/webpack": "~5.0.0",
  "@types/node": "~17.0.21",
  "tailwindcss": "^3.1.8",
  "typescript": "~4.8.4",
  "vue": "^3.2.45"
}

Please accept these terms

rigor789 commented 1 year ago

A fix is in @nativescript/ios@8.5.2-alpha.2 - should be released in a runtime patch soon.

fixed by https://github.com/NativeScript/ios/commit/9a7c7387cb7f9c027f14d705ec9f5256322f5a26#diff-cd4e01be511d764ce88fc05a06fc5e8b0f652c7a3d2e0487aef990850702cfcaR244-R253

mauriciogior commented 1 year ago

I tested the 8.5.2-alpha.2 and still doesn't work for me, it only works with the --no-hmr parameter, which is not convenient.

rigor789 commented 1 year ago

release: 8.5.2

should work as before. If the app never worked with hmr in the past, this won't change that because that's not a runtime level issue. (vue2 for example doesn't work well with hmr, but vue3 beta works quite well).

orbiteleven commented 1 year ago

Related? ns run ios crashes on evert otherHMR update. Running ns run ios --no-hmr does not, but causes a full app reload on each update.

https://github.com/NativeScript/NativeScript/issues/10361

achou11 commented 11 months ago

I'm noticing a similar issue with the latest CLI version (8.6.3). Seems like relevant file changes are detected and I get the Refreshing application on device... log, but the actual change isn't reflected in the simulator screen.

My project was created using the plain TS template. Here's my env info:

OS: macOS 14.2.1
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Shell: /bin/bash
node: 20.10.0
npm: 10.2.3
nativescript: 8.6.3

# android
java: 11.0.21
ndk: Not Found
apis: Not Found
build_tools: Not Found
system_images: Not Found

# ios
xcode: 15.1/15C65
cocoapods: 1.14.3
python: 3.12.1
python3: 3.12.1
ruby: 2.7.8
platforms: 
  - DriverKit 23.2
  - iOS 17.2
  - macOS 14.2
  - tvOS 17.2
  - watchOS 10.2

Dependencies

"dependencies": {
  "@nativescript/core": "~8.6.2",
  "@nativescript/theme": "~3.0.2"
},
"devDependencies": {
  "@nativescript/android": "8.6.2",
  "@nativescript/ios": "8.6.3",
  "@nativescript/types": "~8.6.1",
  "@nativescript/webpack": "~5.0.18",
  "@prettier/plugin-xml": "^3.2.2",
  "@types/node": "^20.10.5",
  "@typescript-eslint/eslint-plugin": "^6.15.0",
  "@typescript-eslint/parser": "^6.15.0",
  "eslint": "^8.56.0",
  "eslint-config-prettier": "^9.1.0",
  "husky": "^8.0.3",
  "lint-staged": "^15.2.0",
  "nativescript": "^8.6.3",
  "npm-run-all": "^4.1.5",
  "prettier": "3.1.0",
  "typescript": "~5.3.3"
}