Sentry-javascript: Mendapat kesalahan Tidak dapat menemukan nama 'tidak diketahui' saat membangun aplikasi Angular 6

Dibuat pada 21 Nov 2019  ·  3Komentar  ·  Sumber: getsentry/sentry-javascript

Paket + Versi

  • [X] @sentry/browser
  • [ ] @sentry/node
  • [ ] raven-js
  • [ ] raven-node _(gagak untuk simpul)_
  • [ ] lainnya:

Versi: kapan:

5.9.1

Keterangan

Hai, Saya memiliki proyek Angular 6 di mana kami menggunakan "@sentry/browser": "^5.0.6" . Proyek ini menggunakan alat GitLab CI untuk membangun gambar buruh pelabuhan untuk menjalankan pengujian kami dan menerapkannya. Hari ini, kami mencoba meluncurkan pekerjaan dan pembuatan TypeScript gagal dengan kode kesalahan berikut:

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

Hal yang paling aneh adalah terakhir kali kami menjalankan pekerjaan (2 Oktober) semuanya baik-baik saja dan kami tidak mengubah satu baris pun dari proyek & konfigurasi kami sejak saat itu.

Apakah Anda memiliki petunjuk? Saya cukup yakin bahwa itu adalah sesuatu yang sangat bodoh ...

package.json kami adalah:

{
  "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"
  }
}

dan 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": "./"
  }
}

Terima kasih banyak, jika Anda membutuhkan informasi lebih lanjut, tanyakan saja.

Sunting: Tentu saja, saya mencoba memperbarui versi penjaga ke yang terbaru (5.9.1 dan mendapatkan hasil yang sama

Needs Information Discussion

Komentar yang paling membantu

@franciscovelez Anda dapat dengan mudah mengatasinya dengan mendeklarasikan unknown ketikkan diri Anda seperti ini:

declare global {
  type unknown = any
}

ooor lebih tepatnya jika Anda ingin:

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

declare global {
  type unknown = mixed
}

Semua 3 komentar

unknown adalah jenis yang diperkenalkan di TypeScript 3 dan Anda menggunakan TypeScript 2. Namun, kami memiliki referensi unknown di basis kode sejak v4 SDK, jadi saya tidak yakin bagaimana caranya bisa bekerja untuk Anda sebelumnya? 🤔

Hai kamilogorek, seperti yang Anda katakan, kami menggunakan TypeScript 2.9. Saya telah bermain dengan npm dan versi penjaga/peramban hari ini dan tampaknya versi terakhir yang berfungsi untuk saya adalah @sentry/browser: 5.6.3 . Saya telah memeriksa riwayat rilis di npm (https://www.npmjs.com/package/@sentry/browser) dan saya melihat bahwa @sentry/browser: 5.7.0 dirilis seminggu setelah penyebaran terakhir saya yang berhasil, jadi semuanya masuk akal untuk saya.

Untuk saat ini saya akan menyimpan paket saya dalam versi 5.6.3 .

Terima kasih atas bantuan Anda

@franciscovelez Anda dapat dengan mudah mengatasinya dengan mendeklarasikan unknown ketikkan diri Anda seperti ini:

declare global {
  type unknown = any
}

ooor lebih tepatnya jika Anda ingin:

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

declare global {
  type unknown = mixed
}
Apakah halaman ini membantu?
0 / 5 - 0 peringkat