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
文件,而不考虑代码。