2016-09-14 126 views
0

我有一个Angular2测试应用程序,它是在RC4中编写的,工作正常。现在我想将它升级到RC7和我收到以下错误消息Angular2 RC7 Http模块错误加载

Error: SyntaxError: Unexpected token < 
    Evaluating http://localhost:7864/traceur 
    Error loading http://localhost:7864/traceur 
    Error loading http://localhost:7864/libs/@angular/http/index.js as "@angular/http" from http://localhost:7864/app/recentActivity/recentActivity.module.js 

我recentActivity.module看起来是这样的:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { HttpModule } from '@angular/http'; 

import { RecentActivityService } from './recentActivity.service'; 
import { RecentActivityComponent } from './recentActivity.component'; 

@NgModule({ 
    imports: [CommonModule, HttpModule], 
    declarations: [RecentActivityComponent], 
    exports: [RecentActivityComponent], 
    providers: [RecentActivityService] 
}) 
export class RecentActivityModule { 
} 

我想不出什么问题在这儿。如果我查看网络流量,我可以看到下载的@ angular/http/index.js具有200状态,下载的文件是预期的结果。所以我不知道为什么它说加载它时出错。我还需要去哪里看。

systemjs.config低于

/** 
* System configuration for Angular 2 samples 
* Adjust as necessary for your application needs. 
*/ 
(function() { 
    // map tells the System loader where to look for things 
    var map = { 
     'app': 'app', // 'dist', 
     '@angular': 'libs/@angular', 
     'angular2-in-memory-web-api': 'libs/angular2-in-memory-web-api', 
     'rxjs': 'libs/rxjs' 
    }; 
    // 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' }, 
     'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' } 
    }; 
    var ngPackageNames = [ 
     'common', 
     'compiler', 
     'core', 
     'forms', 
     'http', 
     'platform-browser', 
     'platform-browser-dynamic', 
     'router', 
     'router-deprecated', 
     'upgrade' 
    ]; 

    var ngIndexPackageNames = [ 
    'http' 
    ]; 
    // Individual files (~300 requests): 
    function packIndex(pkgName) { 
     packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
    } 
    // Bundled (~40 requests): 
    function packUmd(pkgName) { 
     packages['@angular/' + pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
    } 
    // Most environments should use UMD; some (Karma) need the individual index files 
    var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 
    // Add package entries for angular packages 
    ngPackageNames.forEach(setPackageConfig); 
    ngIndexPackageNames.forEach(packIndex); 
    var config = { 
     //meta: { 
     // '*.js': { 
     //  scriptLoad:true 
     // } 
     //}, 
     map: map, 
     packages: packages 
    }; 
    System.config(config); 
})(this); 
+0

请分享您的system.config.js – yurzui

+0

更新问题上面 –

+0

与https://github.com/alexzuza/angular2-typescript-systemjs/blob/master/systemjs.config.js另见HTTPS比较: //angular.io/docs/ts/latest/quickstart.html和https://github.com/angular/angular/blob/master/CHANGELOG.md#breaking-changes-1 – yurzui

回答

1

随着RC.6 angular2队释放宣布包配置

NPM的新的重大更改包:ESM(ES6模块)中的代码t现在发布在npm包的默认位置 处,package.json的主条目 指向UMD包(主要用于节点和webpack 1用户)。

如果您使用SystemJS来加载Angular,您应该调整您的 SystemJS配置以指向UMD软件包(存在于npm 包中)。

请参阅此示例SystemJS config