【发布时间】:2022-03-26 23:04:23
【问题描述】:
我有一个 Angular 工作区,其中包含一个库及其测试应用程序。
projects/
├── midi-app
│ ├── browserslist
│ ├── karma.conf.js
│ ├── src
│ ├── tsconfig.app.json
│ ├── tsconfig.spec.json
│ └── tslint.json
├── midi-app-e2e
│ ├── protractor.conf.js
│ ├── src
│ └── tsconfig.e2e.json
└── midi-lib
├── karma.conf.js
├── ng-package.json
├── package.json
├── README.md
├── src
├── tsconfig.lib.json
├── tsconfig.spec.json
└── tslint.json
我正在使用@types/webmidi 并且 VSCode 编辑器没有抱怨。
我也可以用ng build midi-lib --watch成功构建库,编译完成。
但是,当我尝试使用同一目录中的 ng serve 命令为应用程序提供服务时,它会失败并出现 error TS2503: Cannot find namespace 'WebMidi' 错误。
它曾经运行良好,直到昨天早上我打开笔记本电脑并尝试为应用程序提供服务时,它失败了。自从前一天正常运行以来,我没有进行任何代码更改。
我尝试清理,但没有任何改变:
rm -fr node_modules package-lock.json
npm cache clean
npm install
这里有一些配置文件。
tsconfig.json 文件:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es5",
"lib": [
"es2018",
"dom"
],
"baseUrl": "./",
"paths": {
"@app/*": ["projects/midi-app/src/app/*"],
"@lib/*": ["projects/midi-lib/src/lib/*"],
"midi-lib": [
"dist/midi-lib"
],
"midi-lib/*": [
"dist/midi-lib/*"
]
}
}
}
tsconfig-lib.json 文件:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/lib",
"target": "es2015",
"module": "es2015",
"moduleResolution": "node",
"declaration": true,
"sourceMap": true,
"inlineSources": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"typeRoots": [
"../../node_modules/@types"
],
"lib": [
"dom",
"es2018"
]
},
"angularCompilerOptions": {
"annotateForClosureCompiler": true,
"skipTemplateCodegen": true,
"strictMetadataEmit": true,
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true,
"enableResourceInlining": true
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}
我尝试添加
"typeRoots": [
"node_modules/@types"
],
在tsconfig.json 文件中,但它根本没有帮助。
我也试过删除
"typeRoots": [
"../../node_modules/@types"
],
来自 tsconfig-lib.json 文件,但它再次没有帮助。
更新:问题现在消失了,我不知道为什么。是因为我将 typescript 升级为 3.2.4 吗?还是因为我从 package.json 文件中删除了 webmidi 2.3.3 依赖项?高矮的...
【问题讨论】:
标签: javascript node.js angular typescript