Почему xmllint не работает в приложении aurelia, а работает в обычном js приложении - PullRequest
1 голос
/ 08 апреля 2020

У меня есть комплект SDK, который я сделал. Он имеет зависимость xmllint , которая является оболочкой для какого-либо инструмента командной строки C, и может работать в браузере. Теперь я хочу проверить, все ли работает в среде браузера. В SDK мне пришлось создавать пользовательские типы для xmllint, так как у него есть свой собственный, и я использую машинописный текст внутри SDK.

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

Я начал с очень простого приложения js, которое работает на webpack-dev-server. Там я импортировал свой SDK. Создал экземпляр класса, который использует xmllint и вызвал verify для проверки xml с xsd. Работает нормально.

Но так как его обычно нельзя использовать на простом js, я попробовал немного более сложное приложение. Я установил aurelia-cli и создал проект (au new и setup с typescript и npm) и запустил его на webpack-dev-server. Теперь я использую свой SDK таким же образом, но теперь я получаю ошибку:

TypeError: xmllint_WEBPACK_IMPORTED_MODULE_0__default.a.validate XML не является функцией

Я думаю, это какая-то конфигурация aurelia или webpack, созданная aurelia-cli, вызывает эту ошибку, но я не могу найти какую конфигурацию. Что вызывает эту ошибку в aurelia и как я могу это исправить?

1 Ответ

1 голос
/ 08 апреля 2020

Решил проблему. Проблема заключалась в том, что в webpack.config отсутствовало правило модуля

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