编辑1:将GitHub网址添加到项目中。
编辑2:从tsconfig.json
中删除baseUrl
可以解决所有问题,并且使用相对导入工作正常。
链接:Github
如何生成一个具有相对路径而不是别名的typescript声明文件?
我正在UMD模式下创建一个库(samplelibrary),并在npm上发布它。打包的npm库只有build
文件夹(带有类型定义)、package.json
和README.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");
}
tsconfig.json
{
"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"
}
src/foo.ts
import { bar } from "./utils/bar.ts
export default const Foo = {
bar
};