Description
Feature requested
Would like to be able to change the main entry point script to use via a flag when running ng serve
(as well as ng build
).
ng serve -main main2.ts -e=someOtherEnvironment
Reason
While leveraging environment
constants are handy to conditionally run code in your main.ts
script, they don't get used by webpack (or AOT). So if you have some environment code that you don't want to include in your production build and you do the following in your main.ts
:
. . .
if (environment.someOtherEnvironment) {
myBootstrap(); // This function has imports that bring in other non-production code
} else {
platformBrowserDynamic().bootstrapModule(AppModule);
}
Webpack will follow that function and its imports and will add that code to the bundles even when you ng serve
or ng build
.
Having the ability to target different main scripts would allow for ng serve
and ng build
to be used to build the appropriate code.
Then we could create different main files:
main.ts
. . .
platformBrowserDynamic().bootstrapModule(AppModule);
main.other.ts
. . .
myBootstrap();
And achieve optimal bundling of our app code based on our intended environment.
Notes
I'd be more than happy to add this feature, just want to confirm that it is something that people would feel would be worthy.