λ¬Έμ μ€λͺ
angular2-google-mapsλ AOT μ»΄νμΌμμ μλνμ§ μμ΅λλ€.
μ¬ν λ¨κ³ λ° λ¬Έμ μ μ΅μ λ°λͺ¨
1 λ¨κ³. angular2-seed νλ‘μ νΈ λ³΅μ (
λ¨κ³ 2. angular2-google-maps
ν¨ν€μ§λ₯Ό μ€μΉν©λλ€.
3 λ¨κ³. SYSTEM_CONFIG_DEV
λ° SYSTEM_BUILDER_CONFIG
tools/config/project.config.ts
export class ProjectConfig extends SeedConfig {
...
// angular2 google maps SYSTEM_CONFIG_DEV
this.SYSTEM_CONFIG_DEV.paths['angular2-google-maps/core'] = `node_modules/angular2-google-maps/core/index.js`;
this.SYSTEM_CONFIG_DEV.packages['angular2-google-maps/core'] = { main: 'index.js', defaultExtension: 'js' };
// angular2 google maps SYSTEM_BUILDER_CONFIG
this.SYSTEM_BUILDER_CONFIG.paths['angular2-google-maps/core'] = `node_modules/angular2-google-maps/core/index.js`;
this.SYSTEM_BUILDER_CONFIG.packages['angular2-google-maps/core'] = { main: 'index.js', defaultExtension: 'js' };
}
4 λ¨κ³. μ¬μ΄νΈμ μ½λ μμ± μμνκΈ°
5 λ¨κ³. npm start
(μ μλ ν¨)
6 λ¨κ³. npm run serve.prod
(μ μλνμ΅λλ€).
6 λ¨κ³. npm run build.prod.exp
( μ€λ₯ λ°μ .μ΄ λΉλμλ AOT μ»΄νμΌμ΄ μμ΅λλ€.)
νμ¬ νλ
AOT μ»΄νμΌμ΄ μλνμ§ μμμ΅λλ€. (compile.ahead.prod)
...
[17:41:20] Starting 'build.prod.exp'...
[17:41:20] Starting 'clean.prod'...
[17:41:21] Deleted dist/prod
[17:41:21] Deleted dist/tmp
[17:41:21] Finished 'clean.prod' after 1.37 s
[17:41:21] Starting 'tslint'...
[17:41:26] Finished 'tslint' after 5.02 s
[17:41:26] Starting 'css-lint'...
[17:41:31] Finished 'css-lint' after 4.59 s
[17:41:31] Starting 'build.assets.prod'...
[17:41:31] Finished 'build.assets.prod' after 100 ms
[17:41:31] Starting 'build.html_css'...
[17:41:32] Finished 'build.html_css' after 1.25 s
[17:41:32] Starting 'copy.prod'...
[17:41:32] Finished 'copy.prod' after 54 ms
[17:41:32] Starting 'compile.ahead.prod'...
Error: Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol AppModule in /home/ody12/workspace-mine/angular2-seed/dist/tmp/app/app.module.ts, resolving symbol AppModule in /home/ody12/workspace-mine/angular2-seed/dist/tmp/app/app.module.ts
at simplifyInContext (/Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/static_reflector.ts:540:15)
at StaticReflector.simplify (/Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/static_reflector.ts:544:18)
at StaticReflector.annotations (/Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/static_reflector.ts:92:28)
at _loop_1 (/Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/codegen.ts:63:48)
at CodeGenerator.readFileMetadata (/Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/codegen.ts:57:22)
at /Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/codegen.ts:105:56
at Array.map (native)
at CodeGenerator.codegen (/Users/iminar/Dev/angular/modules/@angular/compiler-cli/src/codegen.ts:105:33)
at codegen (/home/ody12/workspace-mine/angular2-seed/tools/tasks/seed/compile.ahead.prod.ts:14:69)
at Object.main (/home/ody12/workspace-mine/tools/@angular/tsc-wrapped/src/main.ts:44:12)
Compilation failed
...
μμ / μνλ νλ
μνμΌλ©΄ μ’κ² μ΄μ. λμμ£ΌμΈμ.
angular2 λ° angular2-google-maps λ²μ
angular2 : RC6
angular2-google-maps : "0.14.0",
κΈ°ν μ 보
μ½μ΄ μ£Όμ μ κ°μ¬ν©λλ€
@DoyeonOhTravel μ΄λ»κ² app.module.ts μ½λλ₯Ό 곡μ ν μ μμ΅λκΉ? κ°μ¬!
λλ λκ°μ κ²μλ³΄κ³ μλ€- ngc
-μμ± λ .metadata.json
νμΌκ³Ό κ΄λ ¨μ΄μμ μμλ€. https://github.com/angular/angular/issues/11262 μ°Έμ‘°
@SebastianM μ€μ λ‘ Angular νμ λΌμ΄λΈλ¬λ¦¬ κ³΅κΈ μ μ²΄κ° .metadata.json νμΌλ μ 곡ν΄μΌνλ€κ³ μ μν©λλ€. μ΄λ¬ν νμΌμ ngcμ μν΄ μλμΌλ‘ μμ±λ©λλ€.
μλ λκΈμ΄ μ μ© ν μ μμ΅λλ€.
https://github.com/angular/angular/issues/11262#issuecomment -244449696
https://github.com/angular/angular/issues/11262#issuecomment -244472000
https://github.com/angular/angular/issues/11262#issuecomment -244489405
μμ ν λν (https://github.com/angular/angular/issues/11262)
@SebastianM μ΄κ²μ λ΄ app.module.ts μ½λμ λλ€. λ΅μ₯ κ°μ¬ν©λλ€!.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { APP_BASE_HREF } from '@angular/common';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { routes } from './app.routes';
import { AboutModule } from './about/about.module';
import { HomeModule } from './home/home.module';
import { SharedModule } from './shared/shared.module';
import { AgmCoreModule } from 'angular2-google-maps/core/index.js';
import { provideLazyMapsAPILoaderConfig } from 'angular2-google-maps/core';
@NgModule({
imports: [
BrowserModule,
HttpModule,
RouterModule.forRoot(routes),
AboutModule,
HomeModule,
SharedModule.forRoot(),
AgmCoreModule.forRoot()
],
declarations: [AppComponent],
providers: [
{
provide: APP_BASE_HREF,
useValue: '<%= APP_BASE %>'
},
provideLazyMapsAPILoaderConfig({
apiKey: 'key',
clientId: ''
})
],
bootstrap: [AppComponent]
})
export class AppModule { }
@ rh389 @ naveedahmed1 λΉμ μ΄ λ§νλ―μ΄, metadata.json
ν©λλ€. κ°μ¬!.
@SebastianM κ·Έλ¦¬κ³ μ΄ λΆκΈ° λ googleMapμ μ¬μ©ν μν μ½λμ λλ€.
νΈμ λ΄μ κ°κΈ° @doyeonOhTravelHow @doyeonOh @ naveedahmed1 κ°μ¬ν©λλ€! μ€λ μ λ μ νμΈνκ² μ΅λλ€.
μ΄ μμ μ μνλ νμ€νμ§ μμ§λ§ ng2-translateμμ λμΌν λ¬Έμ λ₯Ό νμΈνλ κ²λ μ’μ μ μμ΅λλ€.
μ¬κΈ°μμλ μΌλ°μ μΌλ‘μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ μ€λͺ νλ λΈλ‘κ·Έ κ²μλ¬Ό κ³Ό μ΄λ₯Ό ν΄κ²°νλ λΌμ΄λΈλ¬λ¦¬μ μμ μ μ₯μμ λν λ§ν¬λ₯Ό κ°μ‘°ν©λλ€.
λ§μνμ λΈλ‘κ·Έ κ²μλ¬Όμ μμ±νμ΅λλ€. λΉμ μ΄ μ’μν΄μ λ€νμ
λλ€. λλ λΉμ μ΄ κ²ͺκ³ μλ μ€λ₯κ° metadata.json
νμΌκ³Ό μ§μ κ΄λ ¨μ΄ μλ€κ³ μκ°νμ§λ§ κ·Έκ²λ€λ νμν©λλ€. λ΄ μκ° μ μ½λ μ΄λκ°μ export const blah = () => something
μ export function blah() { return something; }
λ‘ λ³κ²½ν΄μΌν©λλ€.
μΌλΆ μ€λ₯ ( Function calls are not supported
μ€λ₯ ν¬ν¨)μ λν ν΄κ²° λ°©λ²μ μ€λͺ
νλ
AoT μ§μ +1
μ΄μ angular2-google-mapsλ₯Ό Ionic2 RC0κ³Ό ν΅ν©νκΈ° μν΄ κ³ κ΅°λΆν¬νμ΅λλ€.
κ°μ¬ν©λλ€!
@modularcoder μ€μ λ‘ μλνκ² λμμ΅λκΉ? μμ λ κ²μλ¬Όμμ μ μνλλ‘ λλ€λ₯Ό 곡μ₯ ν¨ν΄ ν¨μ λ° λ΄λ³΄λ΄κΈ°λ‘ λ³κ²½νλ €κ³ μλνμ§λ§ μ¬μ ν μ€ν¨νμ΅λλ€.
@lazarljubenovic μ κ°λ° νκ²½ μ© λΉλμμ
μ¬κΈ°μ λ¨κ³λ₯Ό μ€λͺ
νμ΅λλ€.
https://forum.ionicframework.com/t/angular2-google-maps-in-ionic-2/65736
κ°λ° λΉλ μ€μ AoT μ»΄νμΌμ μννμ§ μλ μ΅μ λ²μ μ @ ionic / app-scriptsκ° μ€μΉλμ΄ μλμ§ νμΈνμμμ€.
https://github.com/driftyco/ionic-app-scripts
@modularcoder Android μ© μ±μ λΉλν΄μΌ ν λν΄μΌ ν μΌ, μ€λ₯κ° μμ΅λλ€ ... μ΄μ λν ν΄κ²°μ± μ μ°Ύμμ΅λκΉ? μ΄ μμ μμ μ°λ¦¬λ μ±μ Ionic 2λ₯Ό μ¬μ©ν΄μλ μλ©λλ€.
@allurco μ, package.jsonμ μμ μ λΉλ νκΈ°
μμ μ μ₯μλ₯Ό λ§λ€μμ΅λλ€.
https://github.com/modularcoder/ionic2-angular2-google-maps-example/blob/master/README.md
μμΈν λ΄μ©μ Readmeλ₯Ό μ°Έμ‘°νμμμ€.
μΆμ : μ΅μ λ²μ μ @ ionic / app-scripts ν¨ν€μ§κ° μ€μΉλμ΄ μλμ§ νμΈνμμμ€.
@SebastianM μ΄ λ²κ·Έκ° μμ λ μμλμκΈ°μ λν μ λ°μ΄νΈκ° μμ΅λκΉ? κ°μ¬!
@basvdijk μ£μ‘ν©λλ€. νμ¬ AOTλ₯Ό μ§μν μ μλλ‘ λΉλ μ μ°¨λ₯Ό λ€μ μμ±νκ³ μμ΅λλ€. λ€μ λ μ λ°μ΄νΈλ₯Ό κΈ°λνμμμ€.
@SebastianM μ’μμ! κ·νμ λ Έλ ₯μ κ°μ¬λ립λλ€ π
μ΄κ²μ΄ κ³ μ³ μ Έμ λ°κ°μ΅λλ€! μ΄ μ λ°μ΄νΈλ₯Ό μΈμ μΆμν μ§μ λν μκ°μ΄ μμΌμλκΉ?
κ³ μ λμ΄ μμ΅λκΉ? AoTμ ν¨κ» angular2-google-mapsλ₯Ό μ¬μ©νλ©΄ "μ μ μΌλ‘ κΈ°νΈ κ°μ ν΄κ²°νλ λμ μ€λ₯κ° λ°μνμ΅λλ€. ν¨μ νΈμΆμ΄ μ§μλμ§ μμ΅λλ€. ν¨μ λλ λλ€λ₯Ό λ΄ λ³΄λΈ ν¨μμ λν μ°Έμ‘°λ‘ λ°κΎΈκ³ κΈ°νΈλ₯Ό ν΄κ²°νλ κ²μ΄ μ’μ΅λλ€."λΌλ μ€λ₯κ° λ°μν©λλ€.
λ²κ·Έκ° μμ λμκ³ λ¬Έμ κ° 0.16 λ§μΌμ€ν€μ μΆκ°λμλ€κ³ μκ°ν©λλ€.
@ naveedahmed1 0.16.0 μ λ§μΌμ€ν€μ 55 %μ λλ€. https://github.com/SebastianM/angular2-google-maps/milestone/12 μ°Έμ‘°
λμΌ μλ μμ§λ§ GitHub μ μ₯μμμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉνλλ° 2 κ°μ μ€λ₯κ° λ μμ΅λλ€.
Consider replacing the function or lambda with a reference to an exported function, resolving symbol LAZY_MAPS_API_CONFIG in /Users/william/Ionic/mapOnDevice1/node_modules/angular2-google-maps/src/core/services/maps-api-loader/lazy-maps-api-loader.ts,
resolving symbol AgmCoreModule in /Users/william/Ionic/mapOnDevice1/node_modules/angular2-google-maps/src/core/core-module.ts,
λ€λ₯Έ μ¬λ ?
μμ μΈκΈνλ―μ΄ @ tchinou1 AoT μ§μμ΄ ν¬ν¨ λ 0.16.0μ λ§μΌμ€ν€μ 55 %μ λλ€. https://github.com/SebastianM/angular2-google-maps/milestone/12 μ°Έμ‘° μ΅μ λ¦΄λ¦¬μ€ λ²μ μ΄ μμ§ AoTλ₯Ό μ§μνμ§ μμ΅λλ€.
@basvdijk npm install git+https://[email protected]/SebastianM/angular2-google-maps.git
μ€ννλ©΄ μμ λ λ²μ μ΄ μ€μΉλμ§ μμ΅λκΉ?
μ€μ λ‘ κ·Έλ΄ μμλ @staticint . μλ§λ @SebastianM μ AoT μ§μμ ν΅ν΄ μ΅μ git λ²μ μ μ€μΉνλ λ°©λ²μ μ€λͺ ν μ μμ΅λλ€.
νΈμ§ : μ£μ‘ν©λλ€, μ κ° ν λ Έμ΅λλ€-npm μ€μΉκ° μ΄λ―Έ λΉλλμ΄ μμ΄μΌν©λλ€.
npmμΌλ‘ 리ν¬μ§ν 리λ₯Ό μ§μ κ°μ Έ μ€λ©΄ λΉλ λ μμ°μ΄ μλ μμ€ λ§ μ»μ μ μμ΅λλ€.
μ΄λ‘ μ μΌλ‘λμ΄ μ μ₯μλ₯Ό 볡μ νκ³ λ‘컬μμ npm λ§ν¬ λ₯Ό ν μ μμ§λ§ μ΄λ μλ§λ λ‘컬 κ°λ°μλ§ μ€μ©μ μΌ κ²μ λλ€. λλ λΉλμ tarballμ μ΄λκ°μ μ λ‘λ νκ³ npmμΌλ‘ κ°μ Έμ¬ μ μμ΅λλ€.
μ무λ GitHub μ μ₯μμμ μ€μΉνλ λ°©λ²μ μκ³ μμ΅λκΉ?
κ°μ¬
@ tchinou1 κ·Έκ²μ npm λ¬Έμμ μμ΅λλ€.
μ§λ¬Έ. λ°©κΈ λ§μ€ν° λΈλμΉλ₯Ό ν¬ν¬, 볡μ , λΉλ λ° npm λ§ν¬νμΌλ©° κΈ°μ‘΄ νλ‘μ νΈμμ Uncaught Error: Can't resolve all parameters for LazyMapsAPILoader: (?, WindowRef, DocumentRef).
μ»μ΅λλ€. λ΄ λͺ¨λμ imports
λ€μ μ½λλ₯Ό μ¬μ©νμ¬ μ§μ°λ‘λ λ λͺ¨λμμμ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°μ Έμ΅λλ€.
AgmCoreModule.forRoot({
apiKey: 'xxx',
}),
κ²μ μ μ νλ‘μ νΈλ₯Ό λ§λ€κ³ μν©μ μ΅μνμΌλ‘ μ¬ννλ €κ³ μλνμ§λ§ λ€λ₯Έ μ μ₯μμμ μλνλ―λ‘ μ΄λμλΆν° μμν΄μΌν μ§ λͺ¨λ₯΄κ² μ΅λλ€. forRoot
λ©μλλ₯Ό ν΅ν΄ μ λ¬ λ κ°μ²΄λ₯Όλ°μ§ λͺ»νλ κ²κ³Ό κ°μ΅λλ€.
λꡬλ μ§ λΉμ·ν μν©μ΄λμ΄ μ€λ₯ λ©μμ§κ° μμμ΅λκΉ? μ½λκ°μκ³ μ¬ν ν μμλ μ€λ₯κ°μλ λ‘±μ·μ΄λΌλ κ²μ μκ³ μμ§λ§ μμ΄λμ΄μμ λ²μ΄λκ³ μμ΅λλ€.
AOTκ° μλνλλ‘ κ°λ Googleμ§λλ₯Ό μ΄λ»κ² μ λ°μ΄νΈ ν μ μμ΅λκΉ? νμ¬ AOT λ²μ μ μ¬μ©ν μ μμ΅λκΉ?
AOTκ° μλνλλ‘νλ €λ©΄ package.json
νμΌμ "angular2-google-maps": "^0.16.0",
μ μΆκ°νμΈμ.
κ·Έλ° λ€μ μ± κ΅¬μ± μμμμ λͺ¨λμ κ°μ Έμ΅λλ€.
import { AgmCoreModule } from 'angular2-google-maps/core';
κ°μ Έ μ€κΈ°μ μΆκ°νμμμ€ (xxxxλ₯Ό API ν€λ‘ λ체νμμμ€)
NgModule({
declarations: [],
imports: [
AgmCoreModule.forRoot({
apiKey: 'xxxxxxxxxxxxxxxxxxxxx'
})
],
μ΄μ ν νλ¦Ώμμ λ€μκ³Ό κ°μ κ΅¬μ± μμλ₯Ό μ¬μ©ν μ μμ΅λλ€.
<sebm-google-map disableDefaultUI="true" [zoom]="zoom" [latitude]="location.latitude" [longitude]="location.longitude">
<sebm-google-map-marker [latitude]="location.latitude" [longitude]="location.longitude"></sebm-google-map-marker>
</sebm-google-map>
0.17.0 λ§μΌμ€ν€μ μ¬μ©νκ³ μμΌλ©° μλ μ€λ₯κ° κ³μ λ°μν©λλ€.
" 'google'μ΄λ¦μ μ°Ύμ μ μμ΅λλ€.
" 'google'λ€μ μ€νμ΄μ€λ₯Ό μ°Ύμ μ μμ΅λλ€.
μ΄ μ€λ₯λ μ΄λ―Έ μμ λμμ΅λκΉ?
κ°μ₯ μ μ©ν λκΈ
@basvdijk μ£μ‘ν©λλ€. νμ¬ AOTλ₯Ό μ§μν μ μλλ‘ λΉλ μ μ°¨λ₯Ό λ€μ μμ±νκ³ μμ΅λλ€. λ€μ λ μ λ°μ΄νΈλ₯Ό κΈ°λνμμμ€.