ハイブリッドアプリの作成angularjs
に使用したい既存のプロジェクトで Angular コンポーネントの使用を開始したいと考えています。downgradeModule
Angular/AngularJS
angular
main.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.