Не удается найти переменную: BigInt64Array в Safari

#angular #typescript #safari #bigint

#angular #typescript #safari #bigint

Вопрос:

Совсем недавно мое веб-приложение Angular 8 перестало работать в Safari (застряло на index.html страница). В отладчике выдается сообщение об ошибке: не удается найти переменную: BigInt64Array Я ничего не обновлял через npm, поэтому я не уверен, почему это внезапно начало происходить. Я попытался изменить свой target на «ES5» с «es2015» в tsconfig.js . Я также добавил Safari >= 10 в свой список браузера, но безуспешно. Есть идеи? Спасибо!

введите описание изображения здесь

package.json

 {
  "name": "webapi",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "build:ssr": "ng run WebApi:server:dev",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "8.2.12",
    "@angular/cdk": "^8.2.3",
    "@angular/common": "8.2.12",
    "@angular/compiler": "8.2.12",
    "@angular/core": "8.2.12",
    "@angular/forms": "8.2.12",
    "@angular/material": "^8.2.3",
    "@angular/platform-browser": "8.2.12",
    "@angular/platform-browser-dynamic": "8.2.12",
    "@angular/platform-server": "8.2.12",
    "@angular/router": "8.2.12",
    "@babel/compat-data": "^7.8.0",
    "@fortawesome/angular-fontawesome": "^0.5.0",
    "@fortawesome/fontawesome-svg-core": "^1.2.28",
    "@fortawesome/free-solid-svg-icons": "^5.13.0",
    "@ngu/carousel": "^1.5.5",
    "@nguniversal/module-map-ngfactory-loader": "8.1.1",
    "angular-cd-timer": "^1.0.0",
    "aspnet-prerendering": "^3.0.1",
    "bootstrap": "^4.4.1",
    "core-js": "^3.3.3",
    "deep-copy-ts": "^0.5.0",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "jquery": "^3.4.1",
    "ngx-spinner": "^9.0.2",
    "oidc-client": "^1.9.1",
    "popper.js": "^1.16.1",
    "rxjs": "^6.5.3",
    "zone.js": "0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.24",
    "@angular/cli": "^8.3.14",
    "@angular/compiler-cli": "8.2.12",
    "@angular/language-service": "8.2.12",
    "@types/jasmine": "~3.4.4",
    "@types/jasminewd2": "~2.0.8",
    "@types/node": "~12.11.6",
    "codelyzer": "^5.2.0",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.4.1",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~2.1.0",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.2",
    "typescript": "3.5.3"
  },
  "resolutions": {
    "@babel/preset-env": "7.5.5"
  },
  "optionalDependencies": {
    "node-sass": "^4.12.0",
    "protractor": "~5.4.2",
    "ts-node": "~8.4.1",
    "tslint": "~5.20.0"
  }
}


  

tsconfig.json

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

  

список браузеров

 # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For IE 9-11 support, please uncomment the last line of the file and adjust as needed
> 0.5%
last 2 versions
Firefox ESR
ios_saf >= 10
Safari >= 10
not dead
# IE 9-11

  

Ответ №1:

Оказывается "deep-copy-ts": "^0.5.0", , это была проблема. Для этого пакета требуется BigInt64Array, и он был основным изменением в Safari. После удаления он начинает работать.

Комментарии:

1. Спасибо. Похоже, что PR, исправляющий проблему, уже был объединен ( github.com/erikvullings/deep-copy-ts/issues/13 ) но исправление все еще не выпущено (уже почти год).