Extjs6 Ext.ux应用程序构建与应用程序监视(ExtJS 6.2.0 GPL)

Extjs6 Ext.ux应用程序构建与应用程序监视(ExtJS 6.2.0 GPL),extjs6,Extjs6,我有一个问题,不管是书本还是谷歌,我都无法解决——但我认为,对于比我更熟练的人来说,回答这个问题是非常简单的:——) 使用CMD 6.5.2和ExtJS 6.2.0 GPL 我正在尝试构建一个桌面应用程序,使用示例桌面作为起点 我可以让我的桌面正常运行,修改它,显示我的数据——只要我使用“sencha app watch classic” 我在app.json的requires列表中添加了“ux”,并在Application.js中使用extend:'Ext.ux.desktop.app' 因此

我有一个问题,不管是书本还是谷歌,我都无法解决——但我认为,对于比我更熟练的人来说,回答这个问题是非常简单的:——)

使用CMD 6.5.2和ExtJS 6.2.0 GPL

我正在尝试构建一个桌面应用程序,使用示例桌面作为起点

我可以让我的桌面正常运行,修改它,显示我的数据——只要我使用“sencha app watch classic”

我在app.json的requires列表中添加了“ux”,并在Application.js中使用extend:'Ext.ux.desktop.app'

因此,运行“sencha app watch classic”会显示我的桌面,但运行“sencha app build classic production”,然后将build/production/desktop/中的文件移动到我的web服务器根本不起作用

我在Chrome控制台中遇到这样的错误:Get404(未找到)(索引):72

因此,脚本试图加载一个名为空的js文件,这对我来说很难探索,如果出现更详细的错误就好了:-)

有人知道发生了什么事吗

//Jonas

您缺少一些extjs类的“需求”。 您可以通过运行使用testing env构建的应用程序来找到它们,您应该会在控制台中看到一些关于缺少所需类的有用警告。

您缺少一些extjs类的“所需”。 您可以通过运行使用testing env构建的应用程序来找到它们,您应该会在控制台中看到一些关于缺少所需类的有用警告。

当您在浏览器(通过本地web服务器)中打开应用程序的未编译版本时,您可能会在浏览器控制台中看到以下一个或多个警告:

[W] [Ext.Loader]同步加载“MyApp.view.Test”;考虑在Ext.OnDead

上添加Ext.Read(“MyApp.View,test”)。 这意味着您在某处引用了MyApp.view.Test,但应用程序不知道它是必需的,因此不会事先加载它,也不会将其编译成内置版本。

当您在浏览器中(通过本地web服务器)打开应用程序的未编译版本时,您可能会在浏览器控制台中看到以下一个或多个警告:

[W] [Ext.Loader]同步加载“MyApp.view.Test”;考虑在Ext.OnDead

上添加Ext.Read(“MyApp.View,test”)。
这意味着您在某个地方引用了
MyApp.view.Test
,但应用程序不知道它是必需的,因此不会事先加载它,也不会将它编译成内置版本。

谢谢您的回复,但运行“sencha app build classic testing”不会出现错误,一些警告来自extjs内部,例如,使用@import而不是requires()等。我现在意识到,控制台是指浏览器开发控制台,而不是我运行sencha cmd的终端。感谢您的回复,但运行“sencha app build classic testing”不会出现错误,一些警告来自extjs内部,即使用@import而不是requires()等等…我现在意识到控制台,你指的是浏览器开发控制台,而不是我运行sencha cmd的终端。谢谢你,这帮了我的忙-尽管我从来没有从sencha cmd得到过这么好的建议:-)我的问题的完整答案是1。Sencha app watch和dev build动态添加需求,而生产没有。这就是为什么我的应用程序在watch context 2中运行良好的原因。根据构建的不同,我得到的错误是不同的,但运行测试,然后在浏览器开发控制台中查看错误消息,而不是在构建过程(sencha应用程序构建消息)中查看错误消息,对我有所帮助。3.最后,添加requires“Ext.layout.container.boxOverflow.Menu”解决了这个问题。为什么?!:-)@JonasMalm ExtJS没有动态需求;开发人员必须根据需要添加所需的类,而文档没有告诉您这样做。将
overflowHandler:'menu'
添加到工具栏时,适当的ExtJS工厂(
Ext.factory.boxOverflow
)所做的是尝试实例化在
Ext.layout.container.boxOverflow.menu
中定义的适当类型。该类型不可用,因为ExtJS在工具栏的固定
requires
列表中没有它(这有点道理,因为>90%的应用程序不使用它,所以不必将它添加到每个项目中)。谢谢,这在我的路上帮助了我——尽管我从未从sencha cmd得到过如此好的建议:-)我的问题的完整答案是1。Sencha app watch和dev build动态添加需求,而生产没有。这就是为什么我的应用程序在watch context 2中运行良好的原因。根据构建的不同,我得到的错误是不同的,但运行测试,然后在浏览器开发控制台中查看错误消息,而不是在构建过程(sencha应用程序构建消息)中查看错误消息,对我有所帮助。3.最后,添加requires“Ext.layout.container.boxOverflow.Menu”解决了这个问题。为什么?!:-)@JonasMalm ExtJS没有动态需求;开发人员必须根据需要添加所需的类,而文档没有告诉您这样做。将
overflowHandler:'menu'
添加到工具栏时,适当的ExtJS工厂(
Ext.factory.boxOverflow
)所做的是尝试实例化在
Ext.layout.container.boxOverflow.menu
中定义的适当类型。该类型不可用,因为ExtJS在工具栏的固定
requires
列表中没有它(这有点道理,因为>90%的应用程序不使用它,所以没有必要将它添加到每个项目中)。