我有一个打字稿项目,可以使用webpack构建umd捆绑包,这是一个图书馆项目。该webpack配置除其他外(相关部分):
webpack.config.js(项目核心库)
output: {
filename: mode === "production" ? "[name].min.js" : "[name].js",
path: path.resolve(__dirname, "dist"),
libraryTarget: "umd",
library: "core-library"
},
externals: {
"typescript-logging": "typescript-logging"
}
该库使用typescript-logging,它被设置为外部脚本,因此消费者项目需要提供它。所有这些都可以构建并且可以很好地捆绑在一起,并且在检查捆绑包时,typescript日志记录确实是外部的。
使用者项目使用此项目,并在package.json依赖项中提供typescript记录。这个项目有一个开玩笑的测试。
我希望状态共享用于打字稿记录(核心库和使用者项目中使用的记录器/类别)。但是,我可以在核心库和使用者项目中两次创建相同的类别(名称相同的记录器)(如果状态在它们之间共享,则不允许这样做)。
由于webpack中的“外部”部分,我曾期望过,打字记录仅会存在一次,但似乎会被加载两次(一次在库中,一次在消费者项目中)。
请注意,测试是通过jest(npx jest)运行的。
这是预期的行为(也许不是)? 有人可以解释一下如何实现我想要的可能性,在这种情况下,对于打字稿记录代码,只有一个状态。
谢谢。