Обновление Angular с версии 8 до 15. Ошибка «Невозможно использовать оператор импорта вне модуля»

Я пытаюсь обновить угловое приложение с 8 до 15 после обновления всех пакетов, приложение выдает ошибку ниже при запуске

      Uncaught SyntaxError: Cannot use import statement outside a module (at scripts.js:1:1)

Я пробовал следующие решения, которые я нашел здесь SyntaxError: невозможно использовать оператор импорта вне модуля , но это не помогло

Добавление type = module в package.js

      // package.json
{
  "type": "module"
}

изменение модуля на commonjs в tsconfig

      "module": "commonjs"

установка ниже пакетов

      1. npm i typescript --save-dev

2. npm i ts-node --save-dev

Вот мой package.json

      {
  "name": "paris-app",
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "ng": "ng",
    "start": "node --max-old-space-size=4096 ./node_modules/@angular/cli/bin/ng build --watch",
    "build": "node --max-old-space-size=4096 ./node_modules/@angular/cli/bin/ng build",
    "test": "ng test",
    "test:ci": "ng test --no-watch --no-progress --reporters junit",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^15.0.2",
    "@angular/cdk": "15.0.1",
    "@angular/common": "~15.0.2",
    "@angular/compiler": "~15.0.2",
    "@angular/core": "^15.0.2",
    "@angular/forms": "~15.0.2",
    "@angular/material": "15.0.1",
    "@angular/material-moment-adapter": "15.0.1",
    "@angular/platform-browser": "~15.0.2",
    "@angular/platform-browser-dynamic": "~15.0.2",
    "@angular/router": "~15.0.2",
    "@datorama/akita": "^7.1.1",
    "@datorama/akita-ng-router-store": "^7.0.0",
    "@fortawesome/angular-fontawesome": "^0.12.0",
    "@fortawesome/fontawesome-svg-core": "^6.2.1",
    "@fortawesome/free-solid-svg-icons": "^6.2.1",
    "chart.js": "^4.0.1",
    "core-js": "^2.5.4",
    "hammerjs": "^2.0.8",
    "moment": "^2.24.0",
    "ngx-currency": "^2.0.0",
    "ngx-mat-select-search": "^6.0.0",
    "ngx-spinner": "^14.0.0",
    "ngx-toastr": "^16.0.1",
    "normalizr": "^3.3.0",
    "primeicons": "^6.0.1",
    "primeng": "^15.0.0-rc.1",
    "rxjs": "~7.5.7",
    "tslib": "^1.9.0",
    "zone.js": "~0.12.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "15.0.2",
    "@angular/cli": "~15.0.2",
    "@angular/compiler-cli": "~15.0.2",
    "@angular/language-service": "~15.0.2",
    "@datorama/akita-ngdevtools": "^1.0.4",
    "@types/jasmine": "~3.3.5",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~10.12.18",
    "codelyzer": "~5.1.0",
    "cpx": "^1.5.0",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~6.4.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "karma-junit-reporter": "^1.2.0",
    "node-sass": "^4.12.0",
    "protractor": "~7.0.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.12.0",
    "tslint-config-prettier": "^1.18.0",
    "tslint-plugin-prettier": "^2.0.1",
    "typescript": "~4.8.4"
  },
  "akitaCli": {
    "customFolderName": "true",
    "isAngular": true,
    "basePath": "./src/app"
  }
}

и цконфиг

      {
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "importHelpers": true,
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "commonjs",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2018", "dom"],
    "paths": {
      "@admin": ["./src/app/admin"],
      "@admin/*": ["./src/app/admin/*"],
       ...
    }
  }
}

Старая версия (Angular 8) отлично работает только в обновленной версии. Буду признателен за любую оказанную помощь.

Большое спасибо.

2 ответа

Не уверен, почему мой предыдущий ответ был удален.

Вы используете chartjs 4.0.1, в начале указан Chart.js 3.3.2+, переход на 3.x. Это решило эту проблему для меня.

Помещатьtype="module"внутри тега скрипта:

      <script type="module" src="milsymbol-2.0.0/src/milsymbol.js"></script>
Другие вопросы по тегам