Как включить XML-файлы в каталог приложения в веб-пакете Nativescript - PullRequest
0 голосов
/ 16 января 2019

В моем приложении у меня есть два основных экрана для двух типов пользователей и страница входа. Когда пользователь открывает приложение, я проверяю, какой у него тип пользователя, и в зависимости от типа пользователя открываю определенный файл app-root.xml.

app.js

let currentLogin = appSettings.getString("login", "nothing");
if (currentLogin === 'customer') {
    application.run({ moduleName: "app-root-home" });
}
else if (currentLogin === 'shop') {
    application.run({ moduleName: "app-root-shop" });
}
else {
    application.run({ moduleName: "app-root" });
}

В моем каталоге app есть три разных файла XML (app-root, app-root-home & app-root-shop). каждый из них имеет свою рамку, завернутую в разные макеты.

Когда я выполняю без Webpack, все работает нормально, но когда я включаю Webpack из sidekick, если выполняется следующая инструкция application.run({ moduleName: "app-root-home" });, я получаю сообщение об ошибке: TypeError: Cannot read property '_domid' of undefined.

Я попытался декомпилировать приложение и увидел файл bundle.js, и обнаружил, что веб-пакет не добавляет ни app-root-home.xml, ни app-root-shop.xml. Только app-root.xml был там.

Я использую помощник nativescript и строю свой проект на облаке; Я не часто набираю командные строки, облако делает это для меня.

My nativescript-dev-webpack версия устройства равна 0.19.0.

Я развиваюсь в JS.

Я пытался найти решение на github для подобных проблем, как у меня, и чтобы иметь возможность включать xml файлы в каталог app, и все решения включали модификации в bundle-config.js, которых у меня нет в моем проекте.

Похоже, что в новых версиях webpack файл bundle-config.js больше не существует в каталоге app, он существует в тех же папках плагинов. Ссылка

У меня есть только webpack.config.js в моем каталоге app, поэтому мне нужно знать, могу ли я добавить к нему XML-файлы в JS, но я не смог найти способ сделать это.

Как я могу включить все xml файлы в каталоге app в последнюю версию плагина webpack для моего приложения и запустить его на стороне пользователя.

1 Ответ

0 голосов
/ 17 января 2019

Мне удалось временно решить мою проблему, поместив другие app-root файлы в новые папки с именами, как показано в дереве ниже:

  app
    |-- app-root.xml
    |-- app-root-home
    |   |-- app-root-home-page.js        //empty JS file
    |   |-- app-root-home-view-model.js  //empty JS file
    |   `-- app-root-home-page.xml
    `-- app-root-shop
        |-- app-root-shop-page.js        //empty JS file
        |-- app-root-shop-view-model.js  //empty JS file
        `-- app-root-shop-page.xml

и в моем app.js файле:

let currentLogin = appSettings.getString("login", "nothing");
if (currentLogin === 'customer') {
    application.run({ moduleName: "app-root-home/app-root-home-page" });
}
else if (currentLogin === 'shop') {
    application.run({ moduleName: "app-root-shop/app-root-shop-page" });
}
else {
    application.run({ moduleName: "app-root" });
}

Это не ответ на мой вопрос; это просто быстрое решение проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...