gpt4 book ai didi

reactjs - 使用别名而不是相对路径创建的 typescript 声明文件

转载 作者:行者123 更新时间:2023-12-04 11:48:35 24 4
gpt4 key购买 nike

编辑 1:将 GitHub URL 添加到项目

编辑 2:删除 baseUrl来自 tsconfig.json修复所有问题,使用相对导入工作正常。

链接:Github

如何使用相对路径而不是 alias 生成 typescript 声明文件?

我正在 UMD 模式下创建一个库(samplelibrary)并在 npm 中发布它。打包的 npm 库只有 build文件夹(带打字),package.jsonREADME.md
当我尝试在另一个 typescript 应用程序中使用该库时,由于生成的类型声明文件无效,构建失败。类型声明文件包含别名而不是相对路径。

编译日志:
ERROR in /workspace/myproject/node_modules/samplelibrary/build/typings/src/foo.d.ts(403,17):TS2307: Cannot find module 'utils/bar
如何解决这个问题?

实际创建的声明文件 foo.d.ts:

declare const Foo: {
bar: typeof import("utils/bar");
}

预期文件:
declare const Foo: {
bar: typeof import("./utils/bar");
}

配置文件
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"moduleResolution": "node",
"jsx": "react",
"sourceMap": true,
"rootDir": "./",
"baseUrl": "./src",
"paths": {
"@samplecompany/sampleproject": ["./"]
},
"outDir": "build",
"removeComments": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"strictNullChecks": true,
"declaration": true,
"declarationDir": "typings",
"importHelpers": true
},
"files": ["types/untyped-modules.d.ts"],
"include": [
"src/**/*",
"test/**/*",
"build/**/*",
"styleguide-renderer/**/*"
],
"exclude": ["node_modules"]
}

文件夹结构:
root
-src
-utils
-bar.ts
-foo.ts

实用程序/bar.ts
export const bar = {
hello: "World"
}

源代码/脚.ts
import { bar } from "./utils/bar.ts

export default const Foo = {
bar
};

最佳答案

你运气不好:TypeScript 不会重写导入路径。见 this declined suggestion .您需要避免在库中使用别名,除非您也在使用项目中配置别名。

关于reactjs - 使用别名而不是相对路径创建的 typescript 声明文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500365/

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