MIDI не определен - PullRequest
       18

MIDI не определен

0 голосов
/ 17 марта 2020

После обновления 8.1.3 версии angular до ~9.0.6 и нескольких других зависимостей я получаю следующую ошибку:

loader.js:9 Uncaught ReferenceError: MIDI is not defined
    at Object.../../node_modules/midi/js/loader.js (loader.js:9)
    at __webpack_require__ (bootstrap:79)
    at Object.../../node_modules/abcjs/src/midi/abc_midi_controls.js (abc_midi_controls.js:37)
    at __webpack_require__ (bootstrap:79)
    at Object.../../node_modules/abcjs/src/api/abc_tunebook_midi.js (abc_tunebook_midi.js:3)
    at __webpack_require__ (bootstrap:79)
    at Object.../../node_modules/abcjs/midi.js (midi.js:18)
    at __webpack_require__ (bootstrap:79)
    at Module.../midi-lib/src/lib/service/sheet.service.ts (sheet.service.ts:1)
    at __webpack_require__ (bootstrap:79)

Исходный код зависимости с ошибкой:

if (typeof MIDI === 'undefined') MIDI = {};

Я попытался понизить рейтинг: abcjs с ^5.12.0 обратно на ^5.6.11 @types/webmidi с ^2.0.4 обратно на ^2.0.3 web-midi-api с ^2.0.7 обратно на ^2.0.5 typescript с ^3.7.5 обратно на ^3.4.5, но это ничего не изменило.

ОБНОВЛЕНИЕ: При удалении зависимости abcjs из файла package.json ошибка исчезла, и приложение проекта работало нормально.

Вот обновленный список зависимостей из теперь работающего приложения. Обратите внимание, как исчезла зависимость abcjs.

  "dependencies": {
    "@tonejs/midi": "^2.0.15",
    "@types/webmidi": "^2.0.4",
    "core-js": "^2.6.11",
    "fstream": "^1.0.12",
    "midi-file-slicer": "^5.0.45",
    "midi-json-parser": "^6.4.19",
    "nexusui": "^2.0.10",
    "rxjs": "~6.5.4",
    "tone": "^13.4.9",
    "tslib": "^1.10.0",
    "vexflow": "^1.2.90",
    "web-midi-api": "^2.0.7",
    "zone.js": "~0.10.2"
  },
  "peerDependencies": {},
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.900.6",
    "@angular-devkit/build-ng-packagr": "~0.900.6",
    "@angular/animations": "~9.0.6",
    "@angular/cli": "~9.0.6",
    "@angular/common": "~9.0.6",
    "@angular/compiler": "~9.0.6",
    "@angular/compiler-cli": "~9.0.6",
    "@angular/core": "~9.0.6",
    "@angular/forms": "~9.0.6",
    "@angular/language-service": "~9.0.6",
    "@angular/platform-browser": "~9.0.6",
    "@angular/platform-browser-dynamic": "~9.0.6",
    "@angular/router": "~9.0.6",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "ng-packagr": "^9.0.0",
    "protractor": "^5.4.3",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "^3.7.5"
  }

1 Ответ

0 голосов
/ 19 марта 2020

Можете ли вы попробовать следующее?

  "abcjs": "6.0.0-beta.8",

Я посмотрю на это, как только смогу, но я думаю, что версия не зависит от библиотеки midi. js по умолчанию.

[EDIT] Кроме того, как вы включаете AB cjs? Что-то вроде:

const abcjs = require("abcjs");

или как-то иначе?

...