webpack require.ensure 异步加载angular模块问题

yang_j_j
  • 838

热加载下面的login.controller.js的时候报错,

如果去掉resolve 直接在顶部 import './login.controller' 就不会报错,这个是什么原因呢?

clipboard.png

#login.route.js 文件require.ensure打包加载
import LoginTpl from './login.tpl.html';

var LoginRoute = {
    template    :   LoginTpl,
    controller  :   'LoginCtrl',
    resolve: {
        loadModule : ['$q','$ocLazyLoad',function ($q,$ocLazyLoad) {
            return $q((resolve) => {
                require.ensure([], () => {
                    let module = require('./login.controller');
                    $ocLazyLoad.load({name: 'cm.bg.login'});
                    resolve(module);
                });
            });
        }]
    }
};
export default LoginRoute;

#login.controller.js 热加载的模块

import './login.module'
import '../../../service/LoginService' //登入服务

export default angular.module('cm.bg.login')
    .controller('LoginCtrl',['Login',function(LoginService){
                
    }])
    

是不是和打包出来的顺序有关系?打包出来 104 是 loginService 在 103 是 contorller 的下面。如果是的话 怎么改呢?

clipboard.png

回复
阅读 3.8k
1 个回答

试一试 webpack的plugin : order occurrence

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏