使用 SenchaCmd 构建时出现 SenchaTouch 错误:找不到文件以供依赖参考
Posted
技术标签:
【中文标题】使用 SenchaCmd 构建时出现 SenchaTouch 错误:找不到文件以供依赖参考【英文标题】:SenchaTouch Error while Building with SenchaCmd: Failed to find file(s) for depdency reference 【发布时间】:2013-04-23 16:22:56 【问题描述】:当我想使用 SenchaCmd 构建我的应用程序时,我收到以下错误:
Failed to find file(s) for depdency reference /workspace/SmartphoneClient/app.js::ExtRequire::Ext.ux.picker.DateTime
这就是我的 app.js 的样子:
Ext.Loader.setPath(
'Ext': 'touch/src',
'CatchMyPain': 'app',
'Ext.ux': 'extensions/ux'
);
Ext.require('Ext.ux.picker.DateTime');
Ext.require('Ext.ux.field.DateTimePicker');
DateTime 和 DateTimePicker 这两个文件位于 extension/ux/field/DateTimePicker.js 和 extensions/ux/picker/DateTime.js 下的正确文件夹中
该应用在 Chrome 浏览器和 Safari 移动浏览器上运行良好。我在控制台中没有收到任何消息或错误。
我的错误可能在哪里?
【问题讨论】:
你能检查类名和文件夹名的拼写是否正确并且大小写相同吗? 【参考方案1】:因为 Sencha CMD build 无法自动从加载器解析路径。但是它使用类路径。这应该在配置文件中定义(如逗号分隔列表)。我没有测试过它,因为我使用了 sencha 编译命令(见下文)
来自文档: 由于存储在“.sencha/app/sencha.cfg”中的 app.classpath 配置值,sencha app build 命令知道在哪里可以找到应用程序的源代码。默认情况下,此值为:
app.classpath=$app.dir/app
将目录添加到这个以逗号分隔的列表中会通知编译器在哪里可以找到构建应用程序所需的源代码。
你的应该是:app.classpath=$app.dir/app, $app.dir/extensions/ux
如果使用sencha编译命令:
sencha compile -classpath=./extensions/ux -classpath=./app page -in index.html -out test.html
【讨论】:
【参考方案2】:我必须将目录添加到 .sencha/app/sencha.cfg 的类路径中
app.classpath=$app.dir/app.js,$app.dir/app,$app.dir/extensions
这样 senchaCMD 找到了所有文件。
【讨论】:
以上是关于使用 SenchaCmd 构建时出现 SenchaTouch 错误:找不到文件以供依赖参考的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Sencha Cmd 3.1.1.274 构建 Sencha Touch 2.1 应用程序
Sencha Cmd 损坏:为啥“应用程序构建”会忽略任何命令行参数?
Sencha cmd 构建错误:shellscript 返回:1