为什么 xmllint 在 aurelia 应用程序中不起作用,但在普通 js 应用程序中起作用

Why does xmllint not work in aurelia app but works in plain js app

我有一个自己制作的 SDK 工具包。它有一个 xmllint 的依赖关系,它是一些 C 语言命令行工具的包装器,它可以在浏览器中工作。现在我想测试它是否在浏览器环境中都能正常工作。在 sdk 中,我必须为 xmllint 制作自定义类型,因为它没有自己的类型,并且我在 SDK 中使用 typescript。

declare module "xmllint"{
var xmllint:any;
export default xmllint;
}

我从 运行 在 webpack-dev-server 上推出的非常简单的 js 应用程序开始。我在那里导入了我的 SDK。创建了使用 xmllint 的 class 实例,并调用 verify 以使用 xsd 验证 xml。工作正常。

但由于它大部分不会用于普通 js,我尝试使用更复杂的应用程序。我安装了 aurelia-cli 并用它创建了一个项目(au new 并使用 typescriptnpm 设置)并在 webpack-dev-server 上创建了 运行。现在我以同样的方式使用我的 SDK,但现在我得到错误:

TypeError: xmllint_WEBPACK_IMPORTED_MODULE_0__default.a.validateXML is not a function

我猜是 aurelia-cli 创建的某种 aurelia 或 webpack 配置导致了这个错误,但我似乎找不到是哪个配置。是什么导致 aurelia 出现此错误?我该如何解决?

问题解决了。问题是 webpack.config 缺少模块规则

module:{
rules:[
...,
    {test: path.resolve(__dirname, "node-modules/xmllint/xmllint.js"),use:["imports-loader?require=>null", "exports-loader?xmllint"]}
,...
}]}