ext + deftjs アプリケーションのビルド ツールを Sencha SDK から Sencha Cmd (v3) にアップグレードしました。その際、Ext を 4.2 に、Deft を Ext 0.8 にアップグレードしました。私は最初、 Ext.onReady() が起動されないという問題を抱えていたため、viewControllers が対応するビューからインスタンス化されませんでした。ただし、それを修正し、アプリケーションは開発モードで動作するようになりました
sencha app refresh
コマンドを使用してアプリケーションをビルドしようとしていますsencha app build
が、ビルドされたアプリケーションがまったく読み込まれません。
繰り返しますが、私の ViewControllers はインスタンス化されていません。ビルド ツールによって、deft クラスとビュー コントローラーが all-classes.js に追加されました。(Deft クラスはファイルの最初にあり、ビュー コントローラーはさらに下にあります)
sencha.cfgには、次のクラスパスが含まれています。
app.classpath=${app.dir}/Deft,${app.dir}/ux,${app.dir}/uvd,${app.dir}/app,${app.dir}/inj.js,${app.dir}/app.js
inj.jsには、私のローダー宣言が含まれています。
Ext.Loader.setConfig({
enabled:true,
paths:{
'UVd': 'uvd',
'Ext.ux' : 'ux',
'Deft' : 'Deft',
'FM' : 'app',
'Ext': 'ext/src'
}
});
Ext.syncRequire([
"Ext.Component",
"Ext.ComponentManager",
"Ext.ComponentQuery",
'Deft.mixin.Controllable',
'Deft.mixin.Injectable',
'Deft.Injector'
]);
私のメインビューポートは、インスタンス化される最初のビューであり、次の宣言が含まれています。
Ext.define('FM.view.Viewport', {
extend: 'Ext.panel.Panel',
requires: [
'FM.controller.Viewport'
],
// DI
controller: 'FM.controller.Viewport'
私の開発者 index.htmlは次のようになります。
<!-- <x-compile> -->
<!-- <x-bootstrap> -->
<script src="ext/ext-all.js"></script>
<script src="bootstrap.js"></script>
<!-- </x-bootstrap> -->
<script type="text/javascript" src="inj.js"></script>
<script src="app.js"></script>
<!-- </x-compile> -->
アプリのコンパイル済みバージョンでビュー コントローラーがインスタンス化されない理由を知っている人はいますか?
ありがとう