javascript - Angular chart.js "Kan inte använda import-sats utanför en modul"


Jag skulle vilja använda chart.js men jag har ett problem. Enligt min åsikt blockerar detta problem korrekt import av detta bibliotek.

Jag lade även till detta. Hjälpte inte.

"type": "module",

Jag försöker detta men jag tror att det är ett annat problem "Uncaught SyntaxError: Cannot use import statement outside a module" när jag importerar ECMAScript 6

import { Chart } from 'chart.js/auto'

@Component({
  selector: 'app-line-add-edit',
  templateUrl: './line-add-edit.component.html',
  styleUrls: ['./line-add-edit.component.scss']
})

export class LineAddEditComponent implements OnInit {

  @ViewChild('chartCanvas') private chartCanvasRef!: ElementRef;
  private chartInstance: Chart | undefined;

.html

<div>
    <canvas #chartCanvas
      (mousemove)="onMouseMove($event)"
      (mouseout)="onMouseOut()"
      style="max-width: 600px; margin: 0 auto;"
    ></canvas>
</div>

.fel

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

tsconfig

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "noImplicitOverride": true,
    "noPropertyAccessFromIndexSignature": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "ES2022",
    "module": "ES2022",
    "useDefineForClassFields": false,
    "lib": [
      "ES2022",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "enableI18nLegacyMessageIdFormat": false,
    "strictInjectionParameters": true,
    "strictInputAccessModifiers": true,
    "strictTemplates": true
  }
}

package.json

{
  "name": "dupa",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "type": "module",
  "private": true,
  "dependencies": {
    "@angular/animations": "^16.1.5",
    "@angular/cdk": "^16.1.5",
    "@angular/common": "^16.1.0",
    "@angular/compiler": "^16.1.0",
    "@angular/core": "^16.1.0",
    "@angular/forms": "^16.1.0",
    "@angular/material": "^16.1.5",
    "@angular/platform-browser": "^16.1.0",
    "@angular/platform-browser-dynamic": "^16.1.0",
    "@angular/router": "^16.1.0",
    "@material/form-field": "^14.0.0",
    "@material/grid-list": "^4.0.0",
    "@material/theme": "^14.0.0",
    "@material/toolbar": "^2.3.0",
    "@types/chart.js": "^2.9.37",
    "chart.js": "^4.3.1",
    "material-icons": "^1.13.8",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.13.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^16.1.4",
    "@angular/cli": "~16.1.4",
    "@angular/compiler-cli": "^16.1.0",
    "@types/jasmine": "~4.3.0",
    "jasmine-core": "~4.6.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "typescript": "~5.1.3"
  }
}

Svar #1

ok. nedgradera chart.js till version 3.9 löser problemet

npm uninstall chart.js
npm install [email