1

私は Angular2 アプリを持っていますが、開発環境では問題なく動作します。すべての Angular2 依存関係は、実行時に node_modules dir からロードされます。

アプリケーション コードのバンドルには gulp-typescript プラグインを使用し、サード パーティのライブラリ コードのバンドルには system-js を使用します。

これは、lib ファイルをバンドルするための gulp タスクです。

function bundleLibs() {
  var files = [
    'node_modules/rxjs/bundles/Rx.js',
    'node_modules/@angular/core/bundles/core.umd.js',
    'node_modules/@angular/forms/bundles/forms.umd.js',
    'node_modules/@angular/common/bundles/common.umd.js',
    'node_modules/@angular/compiler/bundles/compiler.umd.js',
    'node_modules/@angular/platform-browser/bundles/platform-browser.umd.js',
    'node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
    'node_modules/@angular/upgrade/bundles/upgrade-static.umd.js'
  ];

  var builder = new SystemJSBuilder('dist', {
    map: {
      'rxjs': 'node_modules/rxjs'
    }
  });

  return builder.bundle(files, 'dist/js/lib.js');
}

すべての rxjs ライブラリを出力ファイルに含めたいと思います。しかし、アプリを実行すると、404ステータスが表示されます

node_modules/rxjs/Subject.js
node_modules/rxjs/Observable.js

(および他のすべての rxjs ファイル)。

それぞれの個別の rxjs ファイルをバンドルすると役立ちます。

var files = [
'node_modules/@angular/core/bundles/core.umd.js',
'node_modules/rxjs/Subject.js',
'node_modules/rxjs/Observable.js',
...
];

しかし、それは良い解決策ではないと思います。

問題は、rxjs ライブラリから必要なファイルをすべてバンドルするにはどうすればよいかということです。(Angular2 に必要)

4

1 に答える 1