nativescript-angular: ERROR: The target entry-point "@nativescript/angular" has missing dependencies

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):

  • CLI: 6.7.4
  • Cross-platform modules: 6.5.2
  • Android Runtime: 6.5.1
  • iOS Runtime: not installed
  • Plugin(s): see below
  • NativeScript-Angular: 9.0.0
  • Angular: 9.1.9

Describe the bug I run tns run android and get the following error:

WARNING in Entry point '@nativescript/angular' contains deep imports into 'E:/Angular/SchoolSquirrel/SchoolSquirrel/node_modules/@nativescript/core/utils/types', 'E:/Angular/SchoolSquirrel/SchoolSquirrel/node_modules/@nativescript/core/ui/animation/keyframe-animation', 'E:/Angular/SchoolSquirrel/SchoolSquirrel/node_modules/@nativescript/core/ui/styling/css-animation-parser', 'E:/Angular/SchoolSquirrel/SchoolSquirrel/node_modules/@nativescript/core/ui/styling/converters', 'E:/Angular/SchoolSquirrel/SchoolSquirrel/node_modules/@nativescript/core/file-system/file-system', 'E:/Angular/SchoolSquirrel/SchoolSquirrel/node_modules/@nativescript/core/ui/layouts/layout-base'. This is probably not a problem, but may cause the compilation of entry points to be out of order.

ERROR in The target entry-point "@nativescript/angular" has missing dependencies:
 - @nativescript/core/ui/layouts/layout-base

To Reproduce My package.json file looks like this:

{
    "name": "SchoolSquirrel",
    "nativescript": {
        "id": "com.schoolsquirrel.SchoolSquirrel",
        "tns-android": {
            "version": "6.5.1"
        }
    },
    "version": "0.0.0",
    "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "eslint . --ext .ts",
        "lint-fix": "eslint . --ext .ts --fix",
        "e2e": "ng e2e",
        "android": "tns run android",
        "ios": "tns run ios",
        "mobile": "tns run",
        "preview": "tns preview"
    },
    "private": true,
    "dependencies": {
        "@angular/animations": "^9.1.9",
        "@angular/common": "^9.1.9",
        "@angular/compiler": "^9.1.9",
        "@angular/core": "^9.1.9",
        "@angular/forms": "^9.1.9",
        "@angular/localize": "^9.1.9",
        "@angular/platform-browser": "^9.1.9",
        "@angular/platform-browser-dynamic": "^9.1.9",
        "@angular/router": "^9.1.9",
        "@nativescript/theme": "^2.3.3",
        "@ng-bootstrap/ng-bootstrap": "^6.1.0",
        "bootstrap": "^4.5.0",
        "core-js": "^3.6.5",
        "@nativescript/angular": "^9.0.0",
        "reflect-metadata": "~0.1.13",
        "rxjs": "~6.5.5",
        "@nativescript/core": "^6.5.2",
        "tslib": "2.0.0",
        "zone.js": "~0.10.3"
    },
    "devDependencies": {
        "@angular-devkit/build-angular": "^0.901.7",
        "@angular/cli": "^9.1.7",
        "@angular/compiler-cli": "^9.1.9",
        "@nativescript/schematics": "^1.0.0",
        "@types/jasmine": "~3.5.10",
        "@types/jasminewd2": "~2.0.8",
        "@types/node": "~14.0.9",
        "@typescript-eslint/eslint-plugin": "^3.1.0",
        "@typescript-eslint/parser": "^3.1.0",
        "codelyzer": "^5.2.2",
        "eslint": "^7.1.0",
        "eslint-config-airbnb": "^18.1.0",
        "eslint-config-prettier": "^6.11.0",
        "eslint-import-resolver-typescript": "^2.0.0",
        "eslint-plugin-github": "^4.0.1",
        "eslint-plugin-import": "^2.20.2",
        "eslint-plugin-json": "^2.1.1",
        "eslint-plugin-prettier": "^3.1.3",
        "jasmine-core": "~3.5.0",
        "jasmine-spec-reporter": "~5.0.2",
        "karma": "~5.0.9",
        "karma-chrome-launcher": "~3.1.0",
        "karma-coverage-istanbul-reporter": "~3.0.3",
        "karma-jasmine": "~3.3.1",
        "karma-jasmine-html-reporter": "^1.5.4",
        "nativescript-dev-webpack": "^1.5.1",
        "node-sass": "^4.14.1",
        "protractor": "~7.0.0",
        "ts-node": "~8.10.2",
        "tslint": "~6.1.2",
        "typescript": "~3.8.3"
    }
}

Expected behavior It builds without any warnings or errors.

Sample project This is an almost fresh project. The frontend is in the SchoolSquirrel folder. It uses code sharing (web and mobile).

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 6
  • Comments: 19 (9 by maintainers)

Most upvoted comments

Yes, it’s working. For anyone interested in the final solution for Angular 9 + Ivy + NativeScript, just check out this PR by @NathanWalker

@hrueger see this Wiki post - covers this issue in Problem 2 πŸ‘ https://github.com/NativeScript/nativescript-angular/wiki/Updating-and-developing-for-@nativescript-angular-v9-with-Ivy-or-without#problem-2

In short at a minimum you need to add ngcc.config.js to root of your project and ensure it at least has this:

module.exports = {
  "packages": {
    "@nativescript/angular": {
      entryPoints: {
        ".": {
          override: {
            main: "./index.js",
            typings: "./index.d.ts",
          },
          ignoreMissingDependencies: true,
        }
      },
      ignorableDeepImportMatchers: [
        /tns-core-modules\//,
        /@nativescript\/core\//
      ]
    }
  }
};

Thank you very much struggled with the same error for about 30min could not find any solutions until I got this.

@hrueger posted a PR with things a bit closer - see notes πŸ‘ https://github.com/SchoolSquirrel/SchoolSquirrel/pull/1