Bounty: 500
Tech: Angular Cli, Angular version 7, Angular Google Maps, Firebase Functions.
Issue: I’m trying to serve my angular universal app but getting an error for angular google maps when building.
Error I get:
/Users/test/Public/Leisure/leisure-app/functions/node_modules/@agm/core/services/managers/info-window-manager.js:1
(function (exports, require, module, __filename, __dirname) { import {
Observable } from 'rxjs';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
Seems that Angular Universal doesnt like third party libraries.
The resource I followed: https://hackernoon.com/deploying-angular-universal-v6-with-firebase-c86381ddd445
My App Module:
import { AgmCoreModule } from '@agm/core';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFireDatabase } from '@angular/fire/database';
import { AngularFireModule } from '@angular/fire';
import { ServiceWorkerModule } from '@angular/service-worker';
import { AngularFireStorageModule } from '@angular/fire/storage';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { BrowserModule } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { GooglePlaceModule } from 'ngx-google-places-autocomplete';
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { NgxErrorsModule } from '@hackages/ngxerrors';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { TruncateModule } from 'ng2-truncate';
import { MetaModule } from '@ngx-meta/core';
import { PreventDoubleSubmitModule } from 'ngx-prevent-double-submission';
// Core App
import { AppComponent } from './app.component';
import { CoreInterceptor } from './interceptor';
import { environment } from '../environments/environment';
// Modules
import { SharedModule } from './shared/shared.module';
import { CoreModule } from './services/core.module';
import { LayoutModule } from './layouts/layout.module';
// Sections
import { COMPONENTS } from './components/index';
import { ROUTES } from './app.routes';
// Guards
import { AuthGuard } from './guards/auth.guard';
import { CreditGuard } from './guards/credit.guard';
@NgModule({
declarations: [
AppComponent,
COMPONENTS
],
imports: [
CommonModule,
FormsModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule,
AngularFirestoreModule,
AngularFireStorageModule,
// This is the Angular google maps module causing issue on build
AgmCoreModule.forRoot({
apiKey: environment.googleApiKey,
libraries: ['places']
}),
GooglePlaceModule,
LayoutModule,
BrowserModule.withServerTransition({ appId: 'test123' }),
PreventDoubleSubmitModule.forRoot(),
TruncateModule,
MetaModule.forRoot(),
HttpClientModule,
NgxErrorsModule,
ReactiveFormsModule,
RouterModule.forRoot(ROUTES),
CoreModule,
SharedModule,
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: CoreInterceptor, multi: true },
AuthGuard,
CreditGuard,
AngularFireDatabase
],
exports: [ RouterModule ],
schemas: [ NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Command I run: serve: npm run build && firebase serve –only functions