gpt4 book ai didi

typescript - 如何覆盖 Angular-CLI 项目中的 node_module 错误类型?

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:23 25 4
gpt4 key购买 nike

我有一个错误的 node_module (angularfire2),它没有用在另一个 node_module (@firebase) 中找到的较新类型进行更新。

我正在尝试让 tsconfig.json 帮助我为其设置路径别名,以便将其重新路由以解析为用 src 编写的调整文件,而不是@firebase 的 node_modules 中的不兼容类型文件作为临时修复.

我知道我可以降级 (@firebase) node_module 以便它兼容。然而,这个问题不是让它工作。我只想弄清楚如何能够覆盖 node_module 错误的类型。

我正在使用 Angular 的 cli 项目,希望我不需要弹出 webpack 来控制它。

我从中学到了 post我覆盖了@types 文件夹中的类型。

但是我仍然无法用 node_module 本身中的 index.d.ts 覆盖类型。

例如(来自 angularfire2)

import { FirebaseApp as FBApp } from '@firebase/app-types';

我想在我的 tsconfig.json 中为 @firebase/app-types 创建一个别名,这样 angularfire2 就会在 src/types-overwrite/@firebase/app-types 中查找

我有以下 tsconfig.json 但它仍然无法正确执行别名,并且仍将解析为不兼容的 node_module 的输入文件而不是 src 中的输入文件。

我的 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",
"src/types-overwrite"
],
"paths": {
"@firebase/app-types": ["src/types-overwrite/@firebase/app-types"]
},
"lib": [
"es2017",
"dom"
]
},
"include": [
"node_modules/angularfire2",
]
}

如何覆盖 Angular-CLI 项目中 node_module 中的 index.d.ts 类型文件,或者如何让我的 tsconfig.json 工作?

更新:

我添加了一个存储库来展示问题:

  • '@firebase/app-types' 有额外的类型用于日志记录(from_node_modules 或 from_src)(因此 node_modules 已经包含在存储库中)

网址:https://github.com/Jonathan002/resolve-typing

最佳答案

我在这篇文章中找到了答案:

Exclude/overwrite npm-provided typings

添加:

  • baseUrl - 解析路径所需
  • 路径
  • 包括(更新)

到我的 tsconfig.json,同时复制包类型代码并在声明文件夹中引用它:

  • 声明/package-name.d.ts

tsconfig.ts

{
"compilerOptions": {
"lib": ["es6"],
"module": "commonjs",
"noImplicitReturns": true,
"outDir": "lib",
"sourceMap": true,
"target": "es6",
"baseUrl": ".",
"paths": {
"*": [
"src/*",
"declarations/*",
]
},
},
"compileOnSave": true,
"include": ["src/**/*.ts", "src/**/*.tsx", "declarations/**/*.d.ts"],
}

关于typescript - 如何覆盖 Angular-CLI 项目中的 node_module 错误类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50065165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com