Angular-google-maps: Modul nicht gefunden: '@agm/core/services/google-maps-types'

Erstellt am 20. Sept. 2019  ·  54Kommentare  ·  Quelle: SebastianM/angular-google-maps

Plötzlich stehe ich vor folgendem Problem.

Modul nicht gefunden: Fehler: „@agm/core/services/google-maps-types“ kann nicht aufgelöst werden

Paket.json

"@agm/core": "^1.0.0",
"@agm/js-marker-clusterer": "^1.0.0"

Hilfreichster Kommentar

@jimmykane Sie sollten sicherstellen, dass Ihre package.json "@agm/core: "1.0.0-beta.7" und nicht @agm/core: "^1.0.0-beta.7" angibt, da dies bedeutet, dass Sie die Version 1.0.0 haben, die nicht dieselbe Schnittstelle verfügbar macht.

Wir arbeiten daran, dies zu beheben, aber es gibt noch andere Importe, die wir angehen müssen.

Alle 54 Kommentare

Hier gilt das gleiche

können Sie node_modules löschen und npm install erneut ausführen

@ doom777 Ich habe es mehrmals getan. kein Glück.

Beispiel-Code-Snippet unten,

import { ZoomControlOptions, ControlPosition, MapTypeControlOptions, FullscreenControlOptions } from '@agm/core/services/google-maps-types';
mapTypeControlOptions:MapTypeControlOptions = {
    position: ControlPosition.LEFT_BOTTOM
    }

  fullscreenControlOptions: FullscreenControlOptions = {
    position : ControlPosition.LEFT_CENTER
  };

hmm, stackblitz hat gerade seine eigenen Probleme. Es gelingt mir nicht, mich zu reproduzieren.

hier ist, was ich versuche:

ng new agm-test2
cd agm-test2
npm install @agm/core
code .

Fügen Sie AgmCoreModule.forRoot zu AppModule hinzu

Vorlage: <agm-map [mapTypeControl]="true" [mapTypeControlOptions]="mapTypeControlOptions" [latitude]="0" [longitude]="0"></agm-map>

Komponente:

import { Component } from '@angular/core';
import { MapTypeControlOptions, ControlPosition } from '@agm/core/services/google-maps-types';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styles: ['agm-map{height:300px}']
})
export class AppComponent {

  mapTypeControlOptions: MapTypeControlOptions = {
    position: ControlPosition.LEFT_BOTTOM
  };
}

Ergebnis:
image

@ doom777 Hier ist ein Beispiel dafür, dass es nicht funktioniert: https://stackblitz.com/edit/angular-krqwfi?file=src%2Fapp%2Fapp.module.ts
Ich habe lediglich @agm/core hinzugefügt und versucht, den FitBoundsService zu importieren

Ich bekomme gerade

Nicht erfasster (versprochener) Fehler: Voreinstellung nicht in Konfiguration angegeben bei
Objekt.config (webcontainer.5f16b010d2745c788a2.js:15)
bei t.config (webcontainer.5f16b010d2745c788a2.js:15)
bei Be (Vorschau-4858aaa60d96ac0657bab.js:1)
bei Vorschau-4858aaa60d96ac06

57bab.js:1

Dies scheint ein Stackblitz-Fehler zu sein

Kannst du etwas ausprobieren?

  1. Klonen Sie diese Bibliothek
  2. gehe zu packages\core\map-types.ts
  3. ControlPosition zur Liste der Exporte hinzufügen
  4. Erstellen Sie die Bibliothek mit yarn build
  5. Verknüpfen Sie die Bibliothek mit npm link (Google-Tutorials, wenn Sie den npm-Link noch nicht verwendet haben)
  6. mal sehen ob es anfängt zu laufen

Bitte versuchen Sie es mit meinem PR https://github.com/SebastianM/angular-google-maps/pull/1730 und sagen Sie uns, ob es das Problem behebt.

Sie müssen den Import von ControlPosition und anderen auf „@agm/core“ ändern.

@doom777 Ich habe #1730 geklont, gebaut und getestet. Es funktioniert wie erwartet.

@ doom777 Dies scheint darauf zurückzuführen zu sein, wie ng-packager Dinge verpackt.

Anstatt die Leute ihre Importe einmal dafür und dann für #1648 aktualisieren zu lassen, sollten wir uns einfach darauf konzentrieren, #1648 herauszubringen, das alle Google Maps-Importe handhaben wird? (Ihre Änderung für #1730 wird möglicherweise für Direktiven/Dienste benötigt, die nicht über @agm/core und stattdessen von @agm/core/{directives,services} importiert werden

Nur um klar zu sein, ng-packagr war eine potenziell bahnbrechende Änderung in Bezug auf die API-Oberfläche, wo # 1648 dieselbe Oberfläche durchbricht (Importe von Google Maps-Typen).

Ich habe #1731 hinzugefügt, was eine ng-packagr-Änderung für dieses Modul ist, aber es behandelt keine Importe von @agm/core/* , die nicht @agm/core/services/google-maps-types sind (einschließlich @agm/core/services oder @agm/core/directives )

Ich erhalte diesen Fehler, wenn ich versuche, {google} aus @agm/core/services/google-maps-types zu importieren. Ich habe auch versucht, node_modules zu löschen und npm install viele Male erneut auszuführen. Bitte helfen Sie mir, eine Lösung zu finden.

@pasqualepalmaccio Wenn es sich um eine Produktion handelt, gehen Sie zurück zu 1.0.0-beta.7. Warten Sie andernfalls, bis wir einen Fix veröffentlichen.

Nach dem Update habe ich das gleiche Problem. Gibt es eine Problemumgehung?

@jimmykane Sie sollten sicherstellen, dass Ihre package.json "@agm/core: "1.0.0-beta.7" und nicht @agm/core: "^1.0.0-beta.7" angibt, da dies bedeutet, dass Sie die Version 1.0.0 haben, die nicht dieselbe Schnittstelle verfügbar macht.

Wir arbeiten daran, dies zu beheben, aber es gibt noch andere Importe, die wir angehen müssen.

Wir haben eine Lösung, nur ein temporäres Problem beim Zusammenführen

Ich sehe dieses Problem immer noch. Ist dieser Fix zusammengeführt?

Nein, ich kann keinen anderen Mitwirkenden finden, um meine PR zu genehmigen :(

Ist dieser Fix zusammengeführt?

Ziehen Sie vielleicht die Version 1.0.0 zurück, solange Sie an einem Fix arbeiten?

Habe das gleiche Problem beim Importieren:

importiere {ZoomControlOptions, ControlPosition, ZoomControlStyle} aus '@agm/core/services/google-maps-types';

Melden Sie sich einfach an, um über die Behebung benachrichtigt zu werden. Wird vorerst fest codierte magische Werte verwenden

Sie können vorerst 1.0.0-beta.7 verwenden.
1.0.1 kommt bald heraus, ich versuche Sebastian Holstein zu kontaktieren, aber kein Glück

Hallo @SebastianM waky waky .... Bitte komm schon, lass uns das anstoßen

1.0.0-beta.7 bricht mit IVY zusammen, daher können wir dieses Paket derzeit nicht verwenden.

Bump @SebastianM bitte behalte dieses Repo bei, komm schon. Zusammenführen und freigeben.

Für 1-Personen-Arbeiten haben wir alle hier zu kämpfen.

Vielleicht sollten wir es einfach forken? Offensichtlich sind genügend Leute daran interessiert, dieses Paket zu verwenden.

Oder: https://drewdevault.com/2018/12/04/How-to-abandon-a-FLOSS-project.html
Oder sogar: https://www.codeshelter.co/

Vielleicht kann Sebastian den Collabs hier einfach die richtigen Privilegien hinzufügen
und voila Problem gelöst.

Am Sa, 2.11.2019, 12:37 Uhr schrieb Lukas Neumann, [email protected] :

Vielleicht sollten wir es einfach forken? Offensichtlich sind genug Leute an der Nutzung interessiert
dieses Paket.

Oder: https://drewdevault.com/2018/12/04/How-to-abandon-a-FLOSS-project.html
Oder sogar: https://www.codeshelter.co/


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/SebastianM/angular-google-maps/issues/1729?email_source=notifications&email_token=AAJVX45GD4L46U7JGGD7FMDQRVQ7FA5CNFSM4IYS2YRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJ3555WW2ZLOORPWSZGOEC4Z6DY#issue-790-Kommentar-790
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AAJVX45ENBM22GNL6UEF26TQRVQ7FANCNFSM4IYS2YRA
.

ich bekomme

Module not found: Error: Can't resolve '@agm/core/services' obwohl es installiert ist!!

@hauptversammlung/core: 1.0.0-beta.3

Können Sie versuchen, auf 1.0.0-beta.7 zu aktualisieren?

wie aktualisiere ich es? -> npm installiere 'agm/core 1.0.0-beta.7' ?

Nun, npm install @agm/[email protected] oder npm update @agm/core

Ohne Update gelöst. Ich habe es versucht

import { GoogleMapsAPIWrapper } from '@agm/core';

und es funktioniert erfolgreich.

OK. Außerdem sollten Sie wahrscheinlich nicht GOogleMapsAPIWrapper verwenden

Warum kannst du das bitte erklären? @ doom777

Warum kannst du das bitte erklären? @ doom777

Ich glaube, dass GoolgeMapsAPIWrapper nur für die interne Verwendung in der Bibliothek gedacht ist, nicht für uns Verbraucher. Sie sollten die Eingabe- und Ereignisbindungen an die Hauptkomponente verwenden. In Ihr Modul importieren Sie das AgmCoreModule und forRoot es in Ihren Importabschnitt.

Wenn Sie direkten Zugriff auf die Google Maps-API erhalten möchten, können Sie die Karte von (mapReady) auf der Komponente wie folgt abrufen:

<agm-map [streetViewControl]="false" [latitude]="lat" [longitude]="lng" [styles]="mapStyles" [zoom]="defaultZoom" [zoomControlOptions]="zoomControlOptions" (mapReady)="mapReady($event)" (zoomChange)="zoomChanged($event)"> </agm-map>

Im Komponentencode:

mapReady(map: google.maps.Map) { this.map = map; }

Und Sie können für Ihre Karte schreiben, indem Sie @types/googlemaps installieren

@Toomavic
GoogleMapsApiWrapper ist intern für die Bibliothek oder für Erweiterungen gedacht. Es ist zwingend erforderlich, was dem deklarativen Stil von Angular widerspricht. Die meisten Dinge, die Sie mit GMAW tun würden, sollten Sie mit Eingaben und Ausgaben auf agm-map und seinen untergeordneten Elementen tun können.

@ermcgrat Sie können die meisten Typen auch von "@agm/core" erhalten, zumindest bis #1648 zusammengeführt wird

Danke Leute.. Vielen Dank 😍😍😍😍😍

Hallo, warum ist dieses Thema geschlossen?
1.1.0 behebt es nicht

Nun, @jimmykane Version 1.1.0 ermöglicht Ihnen Folgendes:

import { ControlPosition } from '@agm/core'

Hallo alle,

1.1.0 behebt es auch nicht für mich. Das habe ich noch:
Module '"../../../../node_modules/@agm/core/agm-core"' has no exported member 'MapTypeControlStyle'
Obwohl es exportiert wurde:
image

Ich habe bereits versucht, node_modules und package-lock zu löschen, aber es geht nicht besser ...

Ich bekomme auch immer noch diesen Fehler.
Module not found: Error: Can't resolve '@agm/core/services/google-maps-types'
Ich versuche zum Beispiel google.maps.geometry.spherical.computeArea() zuzugreifen. Ich kann dies erreichen, indem ich @types/googlemaps und dann import {} from 'googlemaps'; installiere, aber das fühlt sich irgendwie hackig an und IntelliJ Idea markiert es als unbenutzten Import. _Importe optimieren_ löscht dann diese Zeile und bricht den Code.
Kann das bitte behoben werden? 🙏🏻

Versuchen Sie, { GoogleMapsAPIWrapper } von '@agm/core' zu importieren;

anstatt { GoogleMapsAPIWrapper } aus '@agm/core/service' zu importieren;

Dies ist in 1.1.0 immer noch nicht behoben. Kann es bitte wieder geöffnet und bearbeitet werden?

Ich stehe vor diesem Fehler. Ich habe es mit verschiedenen Versionen versucht und der Fehler bleibt ...

für alle, die "noch" vor diesem Fehler stehen, keine tiefen Importe, sondern flache.

Hi @doom777 ist das adressiert?

Ja, wenn Sie die neue Version 3.0.0 verwenden, entfernen Sie den Import vollständig, da wir keine proprietären Google-Typen mehr packen. Wenn Sie 1.1.0 verwenden, importieren Sie einfach die Typen aus @agm/core und nicht tief in der Bibliothek

Könnt ihr mir hier ein bisschen helfen?

Ich sehe jetzt, dass AGM eine QueryList mapControls: QueryList<AgmMapControl>; bekommen kann

Machen wir es jetzt wie?

Vorher war es:

 public mapTypeControlOptions: MapTypeControlOptions = {
    // mapTypeIds: [MapTypeId.HYBRID, MapTypeId.ROADMAP, MapTypeId.SATELLITE, MapTypeId.TERRAIN],
    mapTypeIds: ['hybrid', 'roadmap', 'satellite', 'terrain'],
    position: ControlPosition.LEFT_TOP,
    style: 0
  };

Und zu den Vorlagen:

<agm-map *ngIf="activitiesMapData.length > 0"
             [mapTypeId]="user && user.settings ? user.settings.mapSettings.mapType : 'roadmap'"
             (mapTypeIdChange)="changeMapType($event)"
             [fullscreenControl]="true"
             [mapTypeControl]="true"
             [scaleControl]="true"
             [rotateControl]="true"
             [zoomControl]="true"
             [gestureHandling]="'cooperative'"
             [scrollwheel]="null"
             [mapTypeControlOptions]="mapTypeControlOptions"
             [zoomControlOptions]="zoomControlOptions"
             [rotateControlOptions]="rotateControlOptions"
             [tilt]="45"
             [controlSize]="32"
             [disableDefaultUI]="true"
             [styles]="getStyles(theme)"
             [streetViewControl]="false">

Nun, kommen Sie zu Discord für weitere Diskussionen, aber im Grunde

<agm-map *ngIf="activitiesMapData.length > 0"
             [mapTypeId]="user && user.settings ? user.settings.mapSettings.mapType : 'roadmap'"
             (mapTypeIdChange)="changeMapType($event)"
             [gestureHandling]="'cooperative'"
             [scrollwheel]="null"
             [mapTypeControlOptions]="mapTypeControlOptions"
             [zoomControlOptions]="zoomControlOptions"
             [rotateControlOptions]="rotateControlOptions"
             [tilt]="45"
             [controlSize]="32"
             [disableDefaultUI]="true"
             [styles]="getStyles(theme)"
             [streetViewControl]="false">
   <agm-fullscreen-control></agm-fullscreen-control>
   <agm-scale-control></agm-scale-control>
   <agm-map-type-control [style]="style" [mapTypeIds]="mapTypeIds" [position]="position"></agm-map-type-control>

@doom777 Roger das. Ich habe gesehen, dass dies da war, und ich habe mich gefragt, ob ich mitmachen soll oder nicht :-D

Lassen Sie mich Ihren Rat versuchen. Ich wusste nicht, dass sie jetzt Elemente sind. Viel besser

Ja, wenn Sie die neue Version 3.0.0 verwenden, entfernen Sie den Import vollständig, da wir keine proprietären Google-Typen mehr packen. Wenn Sie 1.1.0 verwenden, importieren Sie einfach die Typen aus @agm/core und nicht tief in der Bibliothek

Hallo @doom777 Ich habe immer noch einige Probleme, nachdem ich mein Projekt aktualisiert habe:

ERROR in node_modules/@agm/js-marker-clusterer/services/google-clusterer-types.d.ts:1:60 - error TS2307: Cannot find module '@agm/core/services/google-maps-types' or its corresponding type declarations.

1 import { GoogleMap, LatLngBounds, Marker, MVCObject } from '@agm/core/services/google-maps-types';

Ich würde gerne Ihren Rat aufgreifen, keine tiefen Importe durchzuführen, aber leider ist dies in @agm/js-marker-clusterer immer noch der Fall. Übersehe ich etwas?

Dies sind die verwendeten Versionen:

"@agm/core": "3.0.0-beta.0",
"@agm/js-marker-clusterer": "^1.1.0",

Vielen Dank im Voraus!

Sie haben einen Versionskonflikt. Wenn Sie Winkel 10 verwenden, verwenden Sie @agm/[email protected] und @agm/[email protected] .
Wenn Sie Angular 9 und früher verwenden, verwenden Sie @agm/[email protected] und @agm/[email protected]

Sie haben einen Versionskonflikt. Wenn Sie Winkel 10 verwenden, verwenden Sie @agm/[email protected] und @agm/[email protected] .
Wenn Sie Angular 9 und früher verwenden, verwenden Sie @agm/[email protected] und @agm/[email protected]

Das hat funktioniert. Aber ich musste aktualisieren von:

import { AgmJsMarkerClustererModule } from '@agm/js-marker-clusterer';

zu:

import { AgmMarkerClustererModule } from '@agm/markerclusterer'

In meinem Modul. Aus irgendeinem Grund funktionierten [streetViewControl] und [zoomControl] nicht. Nachdem ich sie entfernt hatte, funktionierte es normal. Ich werde in den Dokumenten überprüfen, ob sich etwas für diese Eigenschaften geändert hat.

Abgesehen davon, im Zusammenhang mit @agm/markerclusterer , denke ich, dass die Dokumentation so schnell wie möglich aktualisiert werden könnte.

Richtig. Die Steuerungsoptionen wurden zugunsten von untergeordneten Steuerungselementen entfernt

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen