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

NativeScript CLI 7.0. and Angular Compiler requires different TypeScript versions #5373

Open Splash34 opened 4 years ago

Splash34 commented 4 years ago

Environment Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

Describe the bug While updating / migrating my project to v7 typescript will get set to version 3.9.7 to be complaint for v7. This leads to an issue when starting the application.

splash34$ tns debug android
Searching for devices...
Copying template files...
+ @nativescript/android@7.0.0
updated 1 package and audited 1393 packages in 5.909s
⠇ found 1 high severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details
Platform android successfully added. v7.0.0
Preparing project...
File change detected. Starting incremental webpack compilation...

webpack is watching the files…

Hash: 2082db08eadcf65243cc
Version: webpack 4.44.1
Time: 2766ms
Built at: 09/05/2020 10:39:28 PM
 4 assets
Entrypoint bundle = runtime.js vendor.js bundle.js
[../package.json] 1.84 KiB {bundle} [optional] [built]
[./app.scss] 61 KiB {bundle} [built]
[./main.ts] 1.13 KiB {bundle} [built]
    + 329 hidden modules

ERROR in The Angular Compiler requires TypeScript >=3.4.0 and <3.6.0 but 3.9.7 was found instead.

When now downgrading "typescript": "3.5.3", we will receive an error message that the application is not compatible anymore.

splash34$ tns debug android
The current application is not compatible with NativeScript CLI 7.0.

Run 'ns migrate' to migrate your project to NativeScript 7.

Alternatively you may try running it with '--force' to skip this check.

To Reproduce Setup project with following dependencies:

"dependencies": {
    "@angular/animations": "10.1.0",
    "@angular/common": "10.1.0",
    "@angular/compiler": "10.1.0",
    "@angular/core": "10.1.0",
    "@angular/forms": "10.1.0",
    "@angular/http": "^7.2.16",
    "@angular/platform-browser": "10.1.0",
    "@angular/platform-browser-dynamic": "10.1.0",
    "@angular/router": "10.1.0",
    "@nativescript/angular": "10.1.0",
    "@nativescript/core": "7.0.0",
    "@nativescript/theme": "~2.3.0",
    "nativescript-background-http": "^4.2.1",
    "nativescript-camera": "^4.5.0",
    "nativescript-fancyalert": "^3.0.9",
    "nativescript-feedback": "^1.5.0",
    "nativescript-material-datetimepicker": "^1.0.9",
    "nativescript-modal-datetimepicker-fixed-color": "^1.1.10",
    "nativescript-theme-core": "~1.0.6",
    "nativescript-ui-listview": "^7.1.0",
    "nativescript-ui-sidedrawer": "^7.0.4",
    "node-blob": "0.0.2",
    "npm": "^6.14.8",
    "reflect-metadata": "~0.1.12",
    "rxjs": "^6.6.2",
    "swagger-angular-generator": "^4.2.2",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular/compiler-cli": "^8.2.14",
    "@nativescript/android": "7.0.0",
    "@nativescript/ios": "7.0.0",
    "@nativescript/types": "~7.0.0",
    "@nativescript/webpack": "~3.0.0",
    "@ngtools/webpack": "~8.2.0",
    "codelyzer": "~4.5.0",
    "ng-swagger-gen": "^1.8.1",
    "node-sass": "^4.14.1",
    "prettier": "^1.19.1",
    "tslint": "~5.11.0",
    "typescript": "~3.9.7"
  }

Expected behavior Start application after upgrade with emulators.

rigor789 commented 4 years ago

After downgrading typescript you can skip the compatibility check with --force and it should work.

However I'm not sure if your dependencies are correct - shouldn't @angular/compiler-cli be also set to 10.1.0?

ImTheBirdMan commented 4 years ago

Can confirm, I get the same result.

hinalt commented 4 years ago

@rigor789 I tried downgrading the typescript version, after that I got many error's. However, won't ugraded angular/compiler-cli version cause more trouble?

rigor789 commented 4 years ago

@hinalt I'm not familiar with angular so not the best person to answer that, however Angular 10 (and soon 11) works with NativeScript, so I don't think the upgrade would cause much trouble. Maybe @NathanWalker and @edusperoni can help here!

edusperoni commented 4 years ago

I'm not even sure @angular/compiler-cli needs to be there, but yes, it should be 10.1.0.

Also, you don't need @angular/http.

Angular 11 just got released and it's already supported (we have an rc up but the current nativescript-angular 10 works with 11), and that uses Typescript >=4 I believe

tech-oss commented 3 years ago

@Splash34 I am having the same problem did you find any fix?

tech-oss commented 3 years ago

@Splash34 After updating to native script 7 cli compiler is asking for lower type script version