javascript - AngularJs + webpack - 无法读取未定义的属性 'navigable'
我正在尝试将我的 angularjs(1.5.10) 应用程序迁移到 angular。最初我的应用程序是使用 jhipster 创建的。现在我们已经移除了 jhipster,但应用程序的结构仍然保持不变。
我已将所有依赖项移到 package.json,并且正在尝试使用 webpack 打包我的脚本,然后在 index.html 页面上使用打包后的脚本。webpack 版本是 4.26.1,我正在使用 @uirouter/angularjs,版本是 0.3.1
当我运行命令来运行 webpack 时,它成功运行并生成了打包文件,但当我在浏览器上运行应用程序时,我得到以下错误:-
Uncaught Error: [$injector:modulerr] Failed to instantiate module libraryApp due to:
TypeError: Cannot read property 'navigable' of undefined
at Object.url (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2245:30)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2381:72)
at flushQueuedChildren (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2353:7)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2395:5)
at flushQueuedChildren (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2353:7)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2395:5)
at flushQueuedChildren (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2353:7)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2395:5)
at $StateProvider.state (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2877:5)
at stateConfig (webpack:///./src/main/webapp/app/app.state.ts?:16:24)
http://errors.angularjs.org/1.5.10/$injector/modulerr?p0=libraryApp&p1=TypeError%3A%20Cannot%20read%20property%20'navigable'%20of%20undefined%0A%20%20%20%20at%20Object.url%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2245%3A30)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2381%3A72)%0A%20%20%20%20at%20flushQueuedChildren%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2353%3A7)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2395%3A5)%0A%20%20%20%20at%20flushQueuedChildren%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2353%3A7)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2395%3A5)%0A%20%20%20%20at%20flushQueuedChildren%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2353%3A7)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2395%3A5)%0A%20%20%20%20at%20%24StateProvider.state%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2877%3A5)%0A%20%20%20%20at%20stateConfig%20(webpack%3A%2F%2F%2F.%2Fsrc%2Fmain%2Fwebapp%2Fapp%2Fapp.state.ts%3F%3A16%3A24)
at Object.url (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2245:30)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2381:72)
at flushQueuedChildren (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2353:7)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2395:5)
at flushQueuedChildren (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2353:7)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2395:5)
at flushQueuedChildren (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2353:7)
at registerState (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2395:5)
at $StateProvider.state (webpack:///./node_modules/@uirouter/angularjs/release/angular-ui-router.js?:2877:5)
at stateConfig (webpack:///./src/main/webapp/app/app.state.ts?:16:24)
http://errors.angularjs.org/1.5.10/$injector/modulerr?p0=libraryApp&p1=TypeError%3A%20Cannot%20read%20property%20'navigable'%20of%20undefined%0A%20%20%20%20at%20Object.url%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2245%3A30)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2381%3A72)%0A%20%20%20%20at%20flushQueuedChildren%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2353%3A7)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2395%3A5)%0A%20%20%20%20at%20flushQueuedChildren%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2353%3A7)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2395%3A5)%0A%20%20%20%20at%20flushQueuedChildren%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2353%3A7)%0A%20%20%20%20at%20registerState%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2395%3A5)%0A%20%20%20%20at%20%24StateProvider.state%20(webpack%3A%2F%2F%2F.%2Fnode_modules%2F%40uirouter%2Fangularjs%2Frelease%2Fangular-ui-router.js%3F%3A2877%3A5)%0A%20%20%20%20at%20stateConfig%20(webpack%3A%2F%2F%2F.%2Fsrc%2Fmain%2Fwebapp%2Fapp%2Fapp.state.ts%3F%3A16%3A24)
at eval (webpack:///./node_modules/angular/angular.js?:68:12)
at eval (webpack:///./node_modules/angular/angular.js?:4688:15)
at forEach (webpack:///./node_modules/angular/angular.js?:325:20)
at loadModules (webpack:///./node_modules/angular/angular.js?:4649:5)
at createInjector (webpack:///./node_modules/angular/angular.js?:4571:19)
at doBootstrap (webpack:///./node_modules/angular/angular.js?:1805:20)
at bootstrap (webpack:///./node_modules/angular/angular.js?:1826:12)
at angularInit (webpack:///./node_modules/angular/angular.js?:1711:5)
at eval (webpack:///./node_modules/angular/angular.js?:32539:5)
at HTMLDocument.trigger (webpack:///./node_modules/angular/angular.js?:3253:7)
我的 app.state.js 代码:-
import angular from 'angular';
(function() {
'use strict';
angular
.module('libraryApp')
.config(stateConfig);
stateConfig.$inject = ['$stateProvider'];
function stateConfig($stateProvider) {
$stateProvider.state('app', {
abstract: true,
views: {
'topbar@': {
templateUrl: 'app/layouts/topbar/topbar.html',
controller: 'TopbarController',
controllerAs: 'vm'
}
},
resolve: {
authorize: ['Auth',
function (Auth) {
return Auth.authorize();
}
]
}
});
}
})();
另外,如果我在 abstract: true 之前添加 parent: 'app',控制台的错误全部消失了,但 TopbarController 没有被调用,resolve 的 Auth.authorize() 方法也没有被调用。