我有一个自己制作的SDK工具包。它具有xmllint依赖性,它是某些C语言命令行工具的包装,并且可以在浏览器中工作。现在,我想测试一下它们是否都可以在浏览器环境中工作。在sdk中,我必须为xmllint创建自定义类型,因为它确实有自己的名称,并且在SDK中使用typescript即时消息。
declare module "xmllint"{
var xmllint:any;
export default xmllint;
}
我从运行在webpack-dev-server
上的非常简单的js应用开始。我在那里导入了我的SDK。创建使用xmllint的类实例,并调用verify以使用xsd验证xml。效果很好。
但是由于它主要用于普通的js,所以我尝试使用更复杂的应用程序。我安装了aurelia-cli
并用它创建了一个项目(au new,并用typescript
和npm
进行了设置)并在webpack-dev-server
上运行。现在,我以相同的方式使用我的SDK,但是现在出现错误:
TypeError:xmllint_WEBPACK_IMPORTED_MODULE_0__default.a.validateXML不是一个函数
我的猜测是aurelia-cli创建的某种aurelia或webpack配置正在引起此错误,但我似乎无法找到哪个配置。是什么原因导致aurelia出现此错误,我该如何解决?
解决了问题。问题是webpack.config缺少模块规则
{test: path.resolve(__dirname, "node-modules/xmllint/xmllint.js"),use:["imports-loader?require=>null", "exports-loader?xmllint"]}