Ошибка SenchaTouch при сборке с SenchaCmd: не удалось найти файл (-ы) для ссылки на зависимость
Когда я хочу создать приложение с помощью 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 находятся в правильных папках с расширениями / ux /field/DateTimePicker.js и расширениями / ux /picker/DateTime.js.
Приложение прекрасно работает с браузером Chrome и браузером Safari для мобильных устройств. Там я не получаю сообщений или ошибок в консоли.
Где может быть моя ошибка?
2 ответа
Мне пришлось добавить каталог в путь к классам.sencha/app/sencha.cfg
app.classpath=${app.dir}/app.js,${app.dir}/app,${app.dir}/extensions
Таким образом, senchaCMD нашел все файлы.
Потому что сборка Sencha CMD не может автоматически разрешать пути из загрузчика. Однако он использует classpath. Это должно быть определено в файле конфигурации (как разделенный запятыми список). Я не проверял это, думал, потому что я использую команду компиляции sencha (см. Ниже)
Из документов: Команда сборки приложения sencha знает, где найти источник вашего приложения, благодаря значению конфигурации app.classpath, хранящемуся в ".sencha/app/sencha.cfg". По умолчанию это значение:
app.classpath=${app.dir}/app
Добавление каталогов в этот список через запятую сообщает компилятору, где найти исходный код, необходимый для сборки приложения.
Ваш должен быть: app.classpath=${app.dir}/app, ${app.dir}/extensions/ux
Если вы используете команду sencha compile:
sencha compile -classpath=./extensions/ux -classpath=./app page -in index.html -out test.html