2016-05-28 4 views
0

私はgulpと一緒にsystemjs-builderを使用して、コンパイルされたすべてのJSファイルを1つにまとめます。これは、Angular Material 2コンポーネント/サービスを使用しようとするまでうまく動作します。ファイルの先頭にimport {MdIcon} from '@angular2-material/icon'を持つことは問題ありませんが、できるだけ早く私はMdIconまたはdirectivesまたはprovidersアレイへの任意の他の材料コンポーネントまたはサービスの追加として、私は、ビルドプロセスbuildStaticなどの際にエラーが表示されます。systemjs-builder Angular 2の素材を使用するとbuildStaticが失敗する

{ [Error: Error on fetch for node_modules/@angular2-material/icon/icon.js at file:///c:/websites/learn/angular2/node_modules/@angular2-material/icon/icon.js 
    Loading app//app/my-app.component.js 
    Loading app//main.js 
    ENOENT, open 'c:\websites\learn\angular2\node_modules\@angular2-material\icon\usr\local\google\home\jelbourn\material2\tmp\broccoli_type_script_compiler-input_base_path-IydvmmBU.tmp\0\components\icon\icon.js.map'] 
    originalErr: 
    { [Error: ENOENT, open 'c:\websites\learn\angular2\node_modules\@angular2-material\icon\usr\local\google\home\jelbourn\material2\tmp\broccoli_type_script_compiler-input_base_path-IydvmmBU.tmp\0\components\icon\icon.js.map'] 
    cause: 
     { [Error: ENOENT, open 'c:\websites\learn\angular2\node_modules\@angular2-material\icon\usr\local\google\home\jelbourn\material2\tmp\broccoli_type_script_compiler-input_base_path-IydvmmBU.tmp\0\components\icon\icon.js.map'] 
     errno: -4058, 
     code: 'ENOENT', 
     path: 'c:\\websites\\learn\\angular2\\node_modules\\@angular2-material\\icon\\usr\\local\\google\\home\\jelbourn\\material2\\tmp\\broccoli_type_script_compiler-input_base_path-IydvmmBU.tmp\\0\\components\\icon\\icon.js.map' }, 
    isOperational: true, 
    errno: -4058, 
    code: 'ENOENT', 
    path: 'c:\\websites\\learn\\angular2\\node_modules\\@angular2-material\\icon\\usr\\local\\google\\home\\jelbourn\\material2\\tmp\\broccoli_type_script_compiler-input_base_path-IydvmmBU.tmp\\0\\components\\icon\\icon.js.map' } } 

ルーチンが間違った場所からicon.js.mapをロードしようとしているようです。ディレクトリc:\websites\learn\angular2\node_modules\@angular2-material\icon\の代わりに、それは探しているc:\websites\learn\angular2\node_modules\@angular2-material\icon\usr\local\google\home\jelbourn\material2\tmp\broccoli_type_script_compiler-input_base_path-IydvmmBU.tmp\0\components\icon\

私はマテリアル、GulpとSystemJSビルダーの両方に新しいので、どこで問題を探し始めるべきかわかりません。私が言及したように、私は角2の材料を含まないとうまくいく。

gulpfile.jsの関連部分:

gulp.task('build-ts', function() { 
    return gulp.src(appDev + '**/*.ts') 
     .pipe(sourcemaps.init()) 
     .pipe(typescript(tsProject)) 
     .pipe(sourcemaps.write()) 
     //.pipe(jsuglify()) 
     .pipe(gulp.dest(appProd)); 
}); 

gulp.task('bundle',['build-ts'], function() { 
    var builder = new Builder('', './systemjs.config.js'); 

    return builder 
     .buildStatic(appProd + '/main.js', appProd + '/bundle.js', { minify: true, sourceMaps: true}) 
     .then(function() { 
      console.log('Build complete'); 
     }) 
     .catch(function(err) { 
      console.log('Build error'); 
      console.log(err); 
     }); 
}); 

任意のアイデア?

+0

問題は、https://github.com/angular/material2/issues/541のように角度2の材質であるようです。 '@ angular2-material \ icon \ icon.js'の最後に不正な' sourceMappingURL'リファレンスがあります。参照を修正すると、ビルドプロセスがもう少し進んでから、別のファイルの別の悪い参照でエラーになります。悪い行はすべて、@ angular2-materialフォルダ内の多くのファイルで '//#sourceMappingURL ='で始まります。いずれにせよ、自動的にそれらをすべて削除する方法はありますか?私はWindows 7にいる – BeetleJuice

答えて

0

問題は2つの物事の組み合わせのようだ:

  1. 角度資料2アルファ5は、そのファイルに不正なソースマップリンクがあります。 systemjs-builderがこれらのリンクを解決しようとすると、問題が発生します。 https://github.com/angular/material2/issues/541

  2. ソースマップを無視するためのsystemjs-builderのオプションは有効に機能していないようです。 https://github.com/systemjs/builder/issues/610

私は回避策としてsystemjs-builder 0.15.16にダウングレードしている当面のために。そのバージョンは悪いリンクを解決しようとしません。

関連する問題