Angular 库 ng-packagr 不会用相对路径替换 tsconfig 路径
Angular library ng-packagr doesn't replace tsconfig paths with relative paths
我有一个 Angular 工作区 (v10.0.2),其中包含一个库和一个应用程序(用于测试库)。
在我的projects/libname/src/lib/tsconfig.lib.json
里面我有一些路径:
"baseUrl": "./src",
"paths": {
"@lib/*": ["lib/*"]
}
我是这样使用的:
import { DateUtils } from '@lib/utils/date.utils';
我收到此警告:
WARNING: No name was provided for external module '@lib/utils/date.utils' in output.globals – guessing 'date_utils'
AFAIK,这意味着 tsconfig 路径未被替换,因此 ng-packagr
将其视为外部模块。当我查看 dist
文件夹时,我看到 '@lib/utils/date.utils'
仍然存在并且没有被相对路径替换。如果我忽略警告,当我提供测试应用程序时,它会给出此错误:
Cannot find module '@lib/utils/date' or its corresponding type declarations.
我搜索了很多,阅读了很多问题和 SO 问题,但没有找到解决方案。
我找到的唯一解决方案是选择一个前缀,以便在 node_modules
中安装软件包时您的路径将完全相同
例如,如果您的包名称是 xyz
,您的 tsconfig 将是:
"paths": {
"xyz/*": ["lib/*"]
}
我强烈推荐使用子条目,因为它不仅解决了这个问题,而且还支持 tree shaking。 This article 会有帮助
我有一个 Angular 工作区 (v10.0.2),其中包含一个库和一个应用程序(用于测试库)。
在我的projects/libname/src/lib/tsconfig.lib.json
里面我有一些路径:
"baseUrl": "./src",
"paths": {
"@lib/*": ["lib/*"]
}
我是这样使用的:
import { DateUtils } from '@lib/utils/date.utils';
我收到此警告:
WARNING: No name was provided for external module '@lib/utils/date.utils' in output.globals – guessing 'date_utils'
AFAIK,这意味着 tsconfig 路径未被替换,因此 ng-packagr
将其视为外部模块。当我查看 dist
文件夹时,我看到 '@lib/utils/date.utils'
仍然存在并且没有被相对路径替换。如果我忽略警告,当我提供测试应用程序时,它会给出此错误:
Cannot find module '@lib/utils/date' or its corresponding type declarations.
我搜索了很多,阅读了很多问题和 SO 问题,但没有找到解决方案。
我找到的唯一解决方案是选择一个前缀,以便在 node_modules
例如,如果您的包名称是 xyz
,您的 tsconfig 将是:
"paths": {
"xyz/*": ["lib/*"]
}
我强烈推荐使用子条目,因为它不仅解决了这个问题,而且还支持 tree shaking。 This article 会有帮助