遅延ロードされた Angular モジュールを Webpack で動作させようとしていますが、いくつか問題があります。1.bundle.js
子アプリのコードを含む作成が表示されるため、Webpack は分割ポイントを正しく生成しているように見え1.bundle.js
ますが、ページを読み込むときの要求は表示されず、子アプリは初期化されません。決して発火しているようには見えず、モジュールを初期化するconsole.log
ポイントに到達しているようにも見えません。$oclazyload
私が混乱しているいくつかのポイントがあります。
1) webpack はサーバーにリクエストを送信しますか、それとも 2 番目のバンドルを手動でロードする必要がありますか? (私は両方を試しましたが、どちらも機能しません)
2) バンドルを手動でロードする必要がある場合、どの順序でロードする必要がありますか?
3) の 3 番目の引数では、バンドルの名前を制御できるようになっていると思われますが、渡した文字列に関係なくrequire.ensure
バンドルに名前が付けられます。1.bundle.js
require.ensure
4)デバッガーでブロック内のコードをステップスルーできないのはなぜですか? そうすると、Chrome のソース ビューでこれを見ることになります。
undefined
/** WEBPACK FOOTER **
**
**/
(以下のコード)
メイン エントリ ポイント コード:
'use strict';
import angular from 'angular';
import 'angular-ui-router';
import 'oclazyload';
angular.module('parentApp', [
'ui.router',
])
.config(['$urlRouterProvider', '$locationProvider', ($urlRouterProvider, $locationProvider) => {
$urlRouterProvider
.otherwise('/');
$locationProvider.html5Mode(true);
}])
.config(['$stateProvider', ($stateProvider) => {
$stateProvider
.state('child-app', {
url: '/child-app',
template: '<child-app></child-app>',
resolve: {
loadAppModule: ($q, $ocLazyLoad) => {
return $q((resolve) => {
require.ensure(['./child-app/app.js'], (require) => {
let module = require('./child-app/app.js');
console.log(module);
$oclazyload.load({name: 'childApp'});
resolve(module.controller);
});
})
}
},
controller: function() {
}
})
}]);
子アプリ:
'use strict';
import childAppTemplateURL from '../templates/child-app.html';
import childAppController from './controllers/childAppController';
export default angular.module('parentApp.childApp', [])
.component('applicationListApp', {
templateUrl: childAppTemplateURL,
controller: childAppController
});