为什么 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 并使用 typescript
和 npm
设置)并在 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"]}
,...
}]}
我有一个自己制作的 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 并使用 typescript
和 npm
设置)并在 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"]}
,...
}]}