Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 如何在Nativescript网页包的应用程序目录中包含xml文件_Webpack_Nativescript - Fatal编程技术网

Webpack 如何在Nativescript网页包的应用程序目录中包含xml文件

Webpack 如何在Nativescript网页包的应用程序目录中包含xml文件,webpack,nativescript,Webpack,Nativescript,在我的应用程序中,我有两个用于两种类型用户的主屏幕和一个登录页面。当用户打开应用程序时,我检查用户的类型,并根据用户类型打开特定的app root.xml文件 app.js let currentLogin = appSettings.getString("login", "nothing"); if (currentLogin === 'customer') { application.run({ moduleName: "app-root-home" }); } else if (c

在我的应用程序中,我有两个用于两种类型用户的主屏幕和一个登录页面。当用户打开应用程序时,我检查用户的类型,并根据用户类型打开特定的
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的情况下执行时,一切正常,但是当我从sidekick启用
Webpack
时,如果执行以下语句
application.run({moduleName:“app root home”})我收到一个错误:
类型错误:无法读取未定义的属性“\u domid”

我尝试反编译应用程序并查看
bundle.js
文件,发现webpack没有添加
app root home.xml
app root shop.xml
。只有
app root.xml
在那里

我正在使用nativescript sidekick,并在云上构建我的项目;我不经常键入命令行,云为我这样做

我的开发版本是
0.19.0

我正在
JS
中开发

我试图在github上找到类似问题的解决方案,比如我的问题,并且能够在
app
目录中包含
xml
文件,所有的解决方案都包含了
bundle config.js
中的修改,而我的项目中没有这些修改

在新版本的
webpack
中,
bundle config.js
文件不再存在于
app
目录中,而是存在于相同的插件文件夹中

我的
app
目录中只有
webpack.config.js
,所以我需要知道如何在js中将xml文件添加到其中,但我找不到一种方法


如何将
app
目录中最新版本的webpack plugin中的所有
xml
文件包含到我的应用程序中,并在sidekick上运行。

我可以通过将其他
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" });
}

这不是我问题的答案;这只是一个快速修复。

您可以创建两个新页面(
app root home
&
app root shop.xml
),而不是创建一个单独的
app root home.xml
文件。对于每个页面,nativescript将创建
*-page.js
*-view model.js
&
*-page.xml
文件,当您发布版本时,webpack不会删除这些文件


创建两个新页面后,可以包含
*-page.xml
文件,而不是
app root home
&
app root shop
xml文件。

如果删除if条件并直接运行
application.run({moduleName:“app root home”}),是否仍会引发错误?是的。看起来只有
app root.xml
文件是唯一包含的
xml
文件,而不考虑代码。