Angular 角度库ng Packager不';t用相对路径替换tsconfig路径
我有一个角度工作区(v10.0.2),其中包含一个库和一个应用程序(用于测试库) 在我的Angular 角度库ng Packager不';t用相对路径替换tsconfig路径,angular,typescript,ng-packagr,Angular,Typescript,Ng Packagr,我有一个角度工作区(v10.0.2),其中包含一个库和一个应用程序(用于测试库) 在我的projects/libname/src/lib/tsconfig.lib.json中,我有一些路径: "baseUrl": "./src", "paths": { "@lib/*": ["lib/*"] } 我是这样用的: 从'@lib/utils/date.utils'导入{DateUtils};
projects/libname/src/lib/tsconfig.lib.json
中,我有一些路径:
"baseUrl": "./src",
"paths": {
"@lib/*": ["lib/*"]
}
我是这样用的:
从'@lib/utils/date.utils'导入{DateUtils};
我得到这个警告:
警告:output.globals中没有为外部模块“@lib/utils/date.utils”提供名称–猜测“date\u utils”
好的,这意味着tsconfig路径没有被替换,因此ng packagr
将其视为一个外部模块。当我查看dist
文件夹时,我看到'@lib/utils/date.utils'
仍然存在,并且没有被相对路径替换。如果我忽略警告,当我提供测试应用程序时,它会给出以下错误:
找不到模块“@lib/utils/date”或其相应的类型声明
我搜索了很多问题,阅读了很多问题,没有找到解决方案。我找到的唯一解决方案是选择一个前缀,这样当软件包安装在
节点模块中时,您的路径将完全相同。
例如,如果您的包名是xyz
,则您的tsconfig将是:
"paths": {
"xyz/*": ["lib/*"]
}
我强烈建议使用子条目,因为它不仅解决了这个问题,而且还支持树抖动。将有所帮助遗憾的是,ng Packager似乎不支持此功能。非常悲惨,因为这是一个不包括在内的大功能。这里有一个链接指向一个开发人员不支持的线程。