我将Angular项目从Angular 2 rc4升级到当前版本,即2.4.4。我已经在另一个内部项目中完成了这项工作,但是我在这样做时遇到了一些奇怪的错误。
我已经升级了所有角度包,以及typescript,zone.js,rxjs和新的@types模块。我的systemjs.config.js文件如下所示:
var System;
(function(global) {
const paths = {
'deps:': 'js/dependencies/'
};
// map tells the System loader where to look for things
var map = {
'app': 'js/app', // 'dist',
'rxjs': 'deps:rxjs',
'ng2-bootstrap': 'js/dependencies/ng2-bootstrap',
'ng2-file-upload': 'deps:ng2-file-upload',
'moment': 'deps:moment',
'lodash': 'deps:lodash',
'symbol-observable': 'deps:symbol-observable',
'@angular/core': 'deps:@angular/core/bundles/core.umd.js',
'@angular/common': 'deps:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'deps:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'deps:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'deps:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'deps:@angular/http/bundles/http.umd.js',
'@angular/router': 'deps:@angular/router/bundles/router.umd.js',
'@angular/forms': 'deps:@angular/forms/bundles/forms.umd.js',
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
'moment': { main: 'moment.js', defaultExtension: 'js' },
'lodash': { main: 'index.js', defaultExtension: 'js' },
'ng2-bootstrap': { format: 'cjs', main: 'bundles/ng2-bootstrap.umd.js', defaultExtension: 'js' },
'ng2-file-upload': { main: 'ng2-file-upload.js', defaultExtension: 'js' }
};
var config = {
paths: paths,
map: map,
packages: packages
};
System.config(config);
})(this);
这与我们拥有的其他Angular项目完全相同(并且它在那里工作)。
当我构建项目并加载它时,我在浏览器控制台中收到以下错误:
[path]/@angular/router/bundles/router.umd.js/src/url_tree 404 (Not Found)
ZoneAwareError
Error: Error: XHR error (404 Not Found) loading [path]/@angular/router/bundles/router.umd.js/src/url_tree
我尝试过其他systemjs.config.js格式,例如this one,但我仍然遇到错误。那个略有不同; 404在traceur
。
我只是不确定错误来自何处或如何解决。如果有人对去哪儿有任何想法或指示,我会非常感激!
答案 0 :(得分:0)
所以我想出了在这个特殊情况下我的错误来自哪里。我不能说这总是问题,但这对我来说是个问题。
我有一个检查当前路线的功能,然后隐藏或显示菜单组件。该代码已过期,需要更新,但因为我还没有更新,但它失败了,而且404来自哪里。
违规导入是:
import { containsTree } from '@angular/router/src/url_tree';
我评论说,错误消失了。所以现在我可以继续并更新该代码。