编辑 1:将 GitHub URL 添加到项目
baseUrl
编辑2:从tsconfig.json
修复所有问题中删除并使用相对导入工作正常。
链接:Github
如何使用相对路径而不是生成打字稿声明文件alias
?
我正在 UMD 模式下创建一个库(samplelibrary)并在 npm 中发布它。打包的 npm 库只有build
文件夹(带有类型),package.json
并且README.md
当我尝试在另一个打字稿应用程序中使用该库时,由于正在生成无效的类型声明文件,构建失败。类型声明文件包含别名而不是相对路径。
编译日志:
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
};