2016-09-16 10 views
0

私は基本MEANアプリケーション(angular2 2.0.0)を設定しようとしています。 gulpとsystemJSの設定時にgulpを実行するとエラーは発生しませんが、サーバを起動するといくつかのエラーが発生します:LinkAngular2.0.0&express - SystemJS traceur(404)が見つかりません

問題はsystemJS設定ファイルと思われますが、それ。 (角2.0.0の問題?)

これを引き起こす可能性がある(または私が知っている)複数行のコメントはありません。

何か助けていただければ幸いです。

フォルダ構造:Here

Index.hbs:

var map = { 
'app': 'js/app', 
'rxjs': 'js/vendor/rxjs', 
'@angular': 'js/vendor/@angular' 
}; 

var packages = { 
'app': { main: 'main.js', defaultExtension: 'js' }, 
'rxjs': { defaultExtension: 'js' } 
}; 

var packageNames = [ 
'@angular/common', 
'@angular/compiler', 
'@angular/core', 
'@angular/http', 
'@angular/platform-browser', 
'@angular/platform-browser-dynamic', 
'@angular/router', 
'@angular/testing', 
'@angular/upgrade' 
]; 

packageNames.forEach(function(pkgName) { 
packages[pkgName] = { main: 'index', defaultExtension: 'js' }; 
}); 

var config = { 
map: map, 
packages: packages 
}; 

System.config(config); 

gulpfile:

systemjs.config.js上記エラーでここに関連するコード片であります.js:

var gulp = require('gulp'); 
var gulpTypescript = require('gulp-typescript'); 
var gulpSourcemaps = require('gulp-sourcemaps'); 
var appDev = "assets/app"; 
var appProd = "public/js/app"; 
var vendor = "public/js/vendor"; 
var tsconfig = gulpTypescript.createProject('tsconfig.json'); 

gulp.task('build-ts', function() { 
    return gulp.src(appDev + "/**/*.ts") 
    .pipe(gulpSourcemaps.init()) 
    .pipe(gulpTypescript(tsconfig)) 
    .pipe(gulpSourcemaps.write()) 
    .pipe(gulp.dest(appProd)); 
}); 

gulp.task('build-copy', function() { 
    return gulp.src([appDev + "/**/*.html", appDev + "/**/*.css"]) 
    .pipe(gulp.dest(appProd)); 
}); 

gulp.task('vendor', function() { 
    gulp.src('node_modules/@angular/**') 
    .pipe(gulp.dest(vendor + "/@angular/")); 

gulp.src('node_modules/core-js/**') 
.pipe(gulp.dest(vendor + "/core-js/")); 

gulp.src('node_modules/reflect-metadata/**') 
.pipe(gulp.dest(vendor + "/reflect-metadata/")); 

gulp.src('node_modules/rxjs/**') 
.pipe(gulp.dest(vendor + "/rxjs/")); 

gulp.src('node_modules/systemjs/**') 
.pipe(gulp.dest(vendor + "/systemjs/")); 

return gulp.src('node_modules/zone.js/**') 
.pipe(gulp.dest(vendor + "/zone.js/")); 
}); 

gulp.task('watch', function() { 
    gulp.watch(appDev + "**/*.ts", ['build-ts']); 
    gulp.watch(appDev + "**/*.{html,css}", ['build-copy']); 
}); 

gulp.task('default', ['watch', 'build-ts', 'build-copy', 'vendor']); 

main.js

/// <reference path="../../typings.d.ts" /> 

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 

import { AppModule } from './app.module'; 

platformBrowserDynamic().bootstrapModule(AppModule); 

答えて

0

それはsystemjs.config.jsでこのコードです:

packageNames.forEach(function(pkgName) { 
    packages[pkgName] = { main: 'index', defaultExtension: 'js' }; 
}); 

それはES6 import文を含むそのバンドルされていないソースコードにあらゆる角度パッケージをマッピングし、その場でコンパイルする必要があるので、systemjsはtraceurコンパイラをロードしようとしますが失敗します。

実際には、角速度クイックスタートの最新バージョンを見れば、そのコードはもう見つからないでしょう。あなたは良いアイデアがある彼らのサンプルコードの最新バージョンからの新鮮始まるような気がしない場合は

、あなたはこれでこれら3行置き換えるしようとすることができます(その古いバージョンから適応し、テストされていません):

packageNames.forEach(function(pkgName) { 
    packages[pkgName] = { main: 'bundles/' + pkgName.replace('@angular/', '') + '.umd.js', defaultExtension: 'js' }; 
}); 

これは、それらのパッケージを既にコンパイルされたバンドルにマップする必要があるため、traceurは必要ないはずです。

関連する問題