Sentry-javascript: Erreur obtenue Impossible de trouver le nom « inconnu » lors de la création d'une application Angular 6

Créé le 21 nov. 2019  ·  3Commentaires  ·  Source: getsentry/sentry-javascript

Forfait + Version

  • [X] @sentry/browser
  • [ ] @sentry/node
  • [ ] raven-js
  • [ ] raven-node _(corbeau pour nœud)_
  • [ ] autre:

Version:

5.9.1

La description

Salut, j'ai un projet Angular 6 dans lequel nous utilisons "@sentry/browser": "^5.0.6" . Ce projet utilise les outils GitLab CI pour créer une image docker pour exécuter nos tests et la déployer. Aujourd'hui, nous avons essayé de lancer les tâches et la construction dactylographiée a échoué avec le code d'erreur suivant :

ERROR in node_modules/@sentry/utils/dist/misc.d.ts(89,48): error TS2304: Cannot find name 'unknown'.

La chose la plus étrange est que la dernière fois que nous avons exécuté les travaux (le 2 octobre), tout allait bien et nous n'avons modifié aucune ligne de notre projet et de notre configuration depuis lors.

Avez-vous une idée? Je suis presque sûr que c'est quelque chose de vraiment stupide...

Notre package.json est :

{
  "name": "tool-front",
  "version": "0.0.1",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --disable-host-check --host=0.0.0.0",
    "build": "ng build",
    "test": "ng test",
    "lint": "./node_modules/eslint/bin/eslint.js \"./src/**/*.ts\" --quiet",
  },
  "private": true,
  "dependencies": {
    "angular2-query-builder": "0.3.1",
    "@angular/animations": "^6.1.10",
    "@angular/cdk": "^6.3.2",
    "@angular/common": "^6.1.10",
    "@angular/compiler": "^6.1.10",
    "@angular/core": "^6.1.10",
    "@angular/flex-layout": "6.0.0-beta.16",
    "@angular/forms": "^6.1.10",
    "@angular/http": "^6.1.10",
    "@angular/material": "^6.4.7",
    "@angular/material-moment-adapter": "^6.4.7",
    "@angular/platform-browser": "^6.1.10",
    "@angular/platform-browser-dynamic": "^6.1.10",
    "@angular/router": "^6.1.10",
    "@asymmetrik/ngx-leaflet": "^4.0.0",
    "@sentry/browser": "^5.9.1",
    "@sentry/types": "^5.7.1",
    "@sentry/typescript": "^5.7.1",
    "@zxing/ngx-scanner": "1.3.0",
    "deepmerge": "^3.2.0",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "leaflet": "^1.3.1",
    "mat-progress-buttons": "^6.0.1",
    "moment": "^2.22.2",
    "ng-dynamic-component": "^4.0.2",
    "ng2-file-upload": "^1.3.0",
    "ng2-nvd3": "^2.0.0",
    "ngx-init": "^0.1.0",
    "ngx-mat-select-search": "^1.2.0",
    "ngx-papaparse": "^3.0.2",
    "rxjs": "6.2.2",
    "uuid": "^3.3.2",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.7.0",
    "@angular/cli": "6.2.8",
    "@angular/compiler-cli": "^6.1.10",
    "@angular/language-service": "^6.1.10",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "^2.0.6",
    "@types/leaflet": "^1.2.0",
    "@types/node": "~6.0.101",
    "@typescript-eslint/eslint-plugin": "^1.9.0",
    "@typescript-eslint/parser": "^1.4.2",
    "codelyzer": "^4.4.2",
    "concurrently": "^3.5.1",
    "eslint": "^5.15.1",
    "eslint-config-prettier": "^4.1.0",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "json-server": "^0.12.1",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.4.1",
    "karma-jasmine": "^1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~3.2.0",
    "tslint": "~5.7.0",
    "typescript": "~2.9.0",
    "webpack": "^4.28.3"
  }
}

et nos tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ],
    "module": "es2015",
    "baseUrl": "./"
  }
}

Merci beaucoup, si vous avez besoin de plus d'informations, n'hésitez pas à demander.

Edit : bien sûr, j'ai essayé de mettre à jour la version de sentinelle vers la dernière version (5.9.1 et j'ai obtenu les mêmes résultats

Needs Information Discussion

Commentaire le plus utile

@franciscovelez, vous pouvez facilement le contourner en déclarant unknown tapez vous-même comme ceci :

declare global {
  type unknown = any
}

ooor pour être plus précis si vous voulez :

export type mixed = { [key: string]: any } | object | number | string | boolean | symbol | undefined | null | void

declare global {
  type unknown = mixed
}

Tous les 3 commentaires

unknown est un type qui a été introduit dans Typescript 3 et vous utilisez Typescript 2. Cependant, nous avions des références unknown dans la base de code depuis la v4 du SDK, donc je ne sais pas comment cela pourrait travailler pour vous avant? ??

Salut kamilogorek, comme vous l'avez dit, nous utilisons TypeScript 2.9. J'ai joué avec npm et les versions sentinelle/navigateur aujourd'hui et il semble que la dernière version qui fonctionne pour moi soit @sentry/browser: 5.6.3 . J'ai vérifié l'historique des versions dans npm (https://www.npmjs.com/package/@sentry/browser) et je vois que @sentry/browser: 5.7.0 été publié une semaine après mon dernier déploiement réussi, donc tout a du sens tome.

Pour l'instant je vais garder mon package dans la version 5.6.3 .

Merci pour ton aide

@franciscovelez, vous pouvez facilement le contourner en déclarant unknown tapez vous-même comme ceci :

declare global {
  type unknown = any
}

ooor pour être plus précis si vous voulez :

export type mixed = { [key: string]: any } | object | number | string | boolean | symbol | undefined | null | void

declare global {
  type unknown = mixed
}
Cette page vous a été utile?
0 / 5 - 0 notes