0

ハイブリッドアプリの作成angularjsに使用したい既存のプロジェクトで Angular コンポーネントの使用を開始したいと考えています。downgradeModuleAngular/AngularJS

angularmain.ts ファイルで次のコードを使用して、コンポーネントをダウングレードできました。

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { downgradeModule } from '@angular/upgrade/static';
import { AppModule } from '../new-app/src/app/app.module';

const bootstrapFn = (extraProviders: StaticProvider[]) => {
  const platformRef = platformBrowserDynamic(extraProviders);
  return platformRef.bootstrapModule(AppModule);
};

const downgradedModule = downgradeModule(bootstrapFn);

angular.module('old.angular.js.app', [..., downgradedModule])

ng buildおよびコマンドを使用するとすべて正常に動作しng serveますが、prod モードには問題があります。実行時にコンパイルされたjsコードAppModuleが生成されませng build --prodん (コンパイルされたファイルの一部として表示されませんmain.{hash}.js)。

これはAppModule、オンデマンドでブートストラップされるためだと思われますが、それを回避してこのモジュールをコンパイルする方法がわかりません。

現時点では、AppModule がコンパイルされていないため、angularjs アプリでこのエラーが発生しています。

Error: [$injector:modulerr] Failed to instantiate module old.angular.js.app due to:
Error: [$injector:modulerr] Failed to instantiate module old.angular.js.app.newmodule due to:
Error: [$injector:nomod] Module 'old.angular.js.app.newmodule' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
4

1 に答える 1