Angular MIDI未定义
将Angular MIDI未定义,angular,web-midi,Angular,Web Midi,将angular的8.1.3版本升级到~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
angular
的8.1.3
版本升级到~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
但这并没有改变任何事情
更新:
从package.json
文件中删除abcjs
依赖项时,错误消失,项目应用程序正常运行
以下是当前正在工作的应用程序中的已升级依赖项列表。注意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"
}
你能试试下面的吗
"abcjs": "6.0.0-beta.8",
我将尽快研究这个问题,但我认为默认情况下该版本不依赖于midi.js库
[编辑]
此外,您如何包括ABCJ?比如:
const abcjs = require("abcjs");
或者其他方式?您是否尝试过将我刚才做的内容包括在内。我现在安装了midi依赖项发行版
^1.0.0
,但它没有更改任何错误。因此,它的开发依赖项请按照我的建议尝试一次该软件包。删除abcjs ^5.12.0
依赖项可消除此问题。我猜这个依赖项有问题。下面是我如何定义全局从'abcjs/midi'导入abcjs;const sheetAbc=abcjs.renderAbc(name,strNotes,{add_classes:true})
现在我确实升级了依赖项,如package.json
文件内容所示:“abcjs”:“^6.0.0-beta.8”,
但重新服务应用程序后,浏览器控制台显示了完全相同的错误。