Angular-google-maps: Module introuvable : '@agm/core/services/google-maps-types'

Créé le 20 sept. 2019  ·  54Commentaires  ·  Source: SebastianM/angular-google-maps

Tout à coup, je suis confronté au problème suivant.

Module introuvable : erreur : impossible de résoudre '@agm/core/services/google-maps-types'

Package.json

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

Commentaire le plus utile

@jimmykane , vous devez vous assurer que votre package.json spécifie "@agm/core: "1.0.0-beta.7" non @agm/core: "^1.0.0-beta.7" car cela signifie que vous avez la version 1.0.0 qui n'expose pas la même interface.

Nous travaillons à résoudre ce problème, mais il y a d'autres importations auxquelles nous devons nous attaquer.

Tous les 54 commentaires

Pareil ici

pouvez-vous supprimer node_modules et relancer npm install

@ doom777 je l'ai fait plusieurs fois. pas de chance.

Exemple d'extrait de code ci-dessous,

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 a ses propres problèmes en ce moment. Je n'arrive pas à me reproduire.

voici ce que j'essaye:

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

ajouter AgmCoreModule.forRoot à AppModule

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

composant:

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
  };
}

résultat:
image

@ doom777 en voici un exemple qui ne fonctionne pas : https://stackblitz.com/edit/angular-krqwfi?file=src%2Fapp%2Fapp.module.ts
tout ce que j'ai fait a été d'ajouter @agm/core et d'essayer d'importer le FitBoundsService

je viens de recevoir

Erreur non détectée (dans la promesse) : préréglage non spécifié dans la configuration à
Objet.config (webcontainer.5f16b010d2745c788a2.js:15)
sur t.config (webcontainer.5f16b010d2745c788a2.js:15)
chez Be (aperçu-4858aaa60d96ac0657bab.js:1)
à aperçu-4858aaa60d96ac06

57bab.js:1

Cela semble être une erreur de stackblitz

Pouvez-vous essayer quelque chose?

  1. cloner cette bibliothèque
  2. aller à packages\core\map-types.ts
  3. ajouter ControlPosition à la liste des exportations
  4. construire la bibliothèque avec yarn build
  5. lier la bibliothèque avec npm link (tutoriels Google si vous n'avez pas utilisé le lien npm auparavant)
  6. voir s'il commence à fonctionner

Veuillez essayer mon PR https://github.com/SebastianM/angular-google-maps/pull/1730 et dites-nous si cela résout le problème.

Vous devrez changer l'importation de ControlPosition et d'autres en '@agm/core'

@doom777 J'ai cloné, construit et testé #1730. Cela fonctionne comme prévu.

@ doom777 cela semble être dû à la façon dont ng-packager emballe les choses.

Au lieu de demander aux gens de mettre à jour leurs importations une fois pour ceci, puis pour # 1648, devrions-nous simplement nous concentrer sur la sortie de # 1648 qui gérera toutes les importations de Google Maps? (Votre modification pour #1730 peut être nécessaire pour les directives/services qui ne sont pas importés via @agm/core et qui sont importés à la place depuis @agm/core/{directives,services}

Juste pour être clair, ng-packagr était un changement potentiellement révolutionnaire concernant la surface de l'API où # 1648 casse cette même surface (importations de types Google Maps)

J'ai ajouté #1731 qui est un changement ng-packagr pour ce module, mais il ne traite pas les importations de @agm/core/* qui ne sont pas @agm/core/services/google-maps-types (y compris @agm/core/services ou @agm/core/directives )

J'obtiens cette erreur lorsque j'essaie d'importer {google} depuis @agm/core/services/google-maps-types. J'ai également essayé de supprimer node_modules et de relancer l'installation de npm plusieurs fois. Merci de m'aider à trouver une solution.

@pasqualepalmaccio s'il s'agit de production, revenez à 1.0.0-beta.7. Sinon, attendez que nous publions un correctif.

Après mise à jour j'ai le même problème. Existe-t-il une solution de contournement ?

@jimmykane , vous devez vous assurer que votre package.json spécifie "@agm/core: "1.0.0-beta.7" non @agm/core: "^1.0.0-beta.7" car cela signifie que vous avez la version 1.0.0 qui n'expose pas la même interface.

Nous travaillons à résoudre ce problème, mais il y a d'autres importations auxquelles nous devons nous attaquer.

nous avons un correctif, juste un problème temporaire en le fusionnant

Je vois toujours ce problème, ce correctif est-il fusionné ?

non, je ne trouve pas d'autre contributeur pour approuver mon PR :(

Ce correctif est-il fusionné ?

Peut-être retirer la version 1.0.0 tant que vous travaillez sur un correctif ?

J'ai le même problème en essayant d'importer :

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

Il vous suffit de vous inscrire pour être informé du correctif. Utilisera des valeurs magiques codées en dur pour l'instant

vous pouvez utiliser 1.0.0-beta.7 pour l'instant.
1.0.1 sort bientôt, j'essaie de contacter Sebastian Holstein, mais pas de chance

salut @SebastianM waky waky .... S'il vous plaît allez, allons-y

1.0.0-beta.7 rompt avec IVY, donc nous ne pouvons actuellement pas utiliser ce package.

Bump @SebastianM , s'il vous plaît, maintenez ce dépôt. Fusionner et libérer.

Pour 1 personnes travaille nous avons tous du mal ici.

Peut-être qu'on devrait juste le bifurquer ? De toute évidence, suffisamment de personnes sont intéressées par l'utilisation de ce package.

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

Peut-être que Sebastian peut simplement ajouter les privilèges corrects aux collaborations ici
et voila problème résolu.

Le samedi 2 novembre 2019, 12h37, Lukas Neumann, [email protected] a écrit :

Peut-être qu'on devrait juste le bifurquer ? De toute évidence, suffisamment de personnes sont intéressées à utiliser
ce paquet.

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


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/SebastianM/angular-google-maps/issues/1729?email_source=notifications&email_token=AAJVX45GD4L46U7JGGD7FMDQRVQ7FA5CNFSM4IYS2YRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC ,
ou désabonnez-vous
https://github.com/notifications/unsubscribe-auth/AAJVX45ENBM22GNL6UEF26TQRVQ7FANCNFSM4IYS2YRA
.

Je reçois

Module not found: Error: Can't resolve '@agm/core/services' bien qu'il soit installé !!

@agm/core : 1.0.0-beta.3

Pouvez-vous essayer de mettre à jour vers 1.0.0-beta.7 ?

comment puis-je le mettre à niveau ? -> npm install 'agm/core 1.0.0-beta.7' ?

eh bien, npm install @agm/[email protected] ou npm update @agm/core

Résolu sans mise à jour. J'ai essayé

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

et ça marche avec succès.

D'accord. De plus, vous ne devriez probablement pas utiliser GOogleMapsAPIWrapper

Pourquoi pourriez-vous s'il vous plaît expliquer? @doom777

Pourquoi pourriez-vous s'il vous plaît expliquer? @doom777

Je crois que GoolgeMapsAPIWrapper est uniquement destiné à être utilisé en interne dans la bibliothèque, pas pour nous, les consommateurs. Vous devez utiliser les liaisons d'entrée et d'événement au composant principal. Dans votre module, vous importez l'AgmCoreModule et forRoot dans votre section d'importation.

Si vous souhaitez obtenir un accès direct à l'API Google Maps, vous pouvez obtenir la carte à partir de (mapReady) sur le composant, comme suit :

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

Dans le code composant :

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

Et vous pouvez commencer à taper pour votre carte en installant @types/googlemaps

@Toomavic
GoogleMapsApiWrapper est destiné en interne à la bibliothèque ou aux extensions. C'est impératif, ce qui est contraire au style déclaratif d'Angular. La plupart des choses que vous feriez avec GMAW devraient pouvoir être faites avec les entrées et les sorties sur agm-map et ses enfants.

@ermcgrat vous pouvez également obtenir la plupart des types de "@agm/core", au moins jusqu'à ce que #1648 soit fusionné

Merci les gars .. Merci beaucoup 😍😍😍😍😍

Bonjour, pourquoi ce sujet est-il clos ?
1.1.0 ne le corrige pas

Eh bien, la version 1.1.0 de @jimmykane vous permet de :

import { ControlPosition } from '@agm/core'

Salut tout le monde,

1.1.0 ne résout pas le problème pour moi non plus. j'ai encore ça :
Module '"../../../../node_modules/@agm/core/agm-core"' has no exported member 'MapTypeControlStyle'
Même s'il l'a exporté :
image

J'ai déjà essayé de supprimer node_modules et package-lock, sans faire mieux cependant...

Je reçois toujours cette erreur, aussi.
Module not found: Error: Can't resolve '@agm/core/services/google-maps-types'
J'essaie d'accéder par exemple à google.maps.geometry.spherical.computeArea() . Je peux y parvenir en installant @types/googlemaps puis import {} from 'googlemaps'; mais cela semble un peu hacky et IntelliJ Idea le marque comme une importation inutilisée. _Optimiser les importations_ supprime ensuite cette ligne et casse le code.
Cela peut-il être corrigé s'il vous plaît? 🙏🏻

essayez d'importer { GoogleMapsAPIWrapper } depuis '@agm/core' ;

au lieu d'importer { GoogleMapsAPIWrapper } depuis '@agm/core/service' ;

Ce n'est toujours pas corrigé dans la version 1.1.0. Peut-il être s'il vous plaît rouvert et travaillé?

Je suis confronté à cette erreur. J'ai essayé avec différentes versions et l'erreur persiste...

pour tous ceux qui sont "encore" confrontés à cette erreur, ne faites pas d'importations profondes, faites des importations superficielles.

Salut @doom777 est-ce adressé ?

oui, si vous utilisez la nouvelle version 3.0.0, supprimez complètement l'importation car nous n'emballons plus les types google propriétaires. Si vous utilisez 1.1.0, importez simplement les types de @agm/core , et pas au plus profond de la bibliothèque

Pourriez-vous m'aider un peu ici?

Je vois maintenant que AGM peut obtenir une QueryList mapControls: QueryList<AgmMapControl>;

Est-ce qu'on le fait maintenant comme quoi ?

Avant c'était :

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

Et sur les modèles :

<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">

eh bien, venez en discorde pour une discussion plus approfondie, mais fondamentalement

<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 Acceptez ça. Vu que c'était là et je me demandais de rejoindre ou non :-D

Laissez-moi essayer vos conseils. Je ne savais pas que ce sont maintenant des éléments. Beaucoup mieux

oui, si vous utilisez la nouvelle version 3.0.0, supprimez complètement l'importation car nous n'emballons plus les types google propriétaires. Si vous utilisez 1.1.0, importez simplement les types de @agm/core , et pas au plus profond de la bibliothèque

Bonjour @doom777 J'ai toujours des problèmes après la mise à jour de mon projet :

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';

J'aimerais suivre votre conseil de ne pas faire d'importations profondes, mais malheureusement c'est toujours le cas dans @agm/js-marker-clusterer. Est-ce que je manque quelque chose?

Voici les versions utilisées :

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

Merci d'avance!

Vous avez une incompatibilité de version. Si vous utilisez angular 10, utilisez @agm/[email protected] et @agm/[email protected] .
Si vous utilisez Angular 9 et versions antérieures, utilisez @agm/[email protected] et @agm/[email protected]

Vous avez une incompatibilité de version. Si vous utilisez angular 10, utilisez @agm/[email protected] et @agm/[email protected] .
Si vous utilisez Angular 9 et versions antérieures, utilisez @agm/[email protected] et @agm/[email protected]

Cela a fonctionné. Mais j'ai eu besoin de mettre à jour à partir de:

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

pour:

import { AgmMarkerClustererModule } from '@agm/markerclusterer'

Dans mon module. Pour une raison quelconque, [streetViewControl] et [zoomControl] ne fonctionnaient pas. Après les avoir retirés, cela a fonctionné normalement. Je validerai dans la documentation si quelque chose a changé pour ces propriétés.

En plus de cela, en ce qui concerne @agm/markerclusterer , je pense que la documentation pourrait être mise à jour dès que possible.

Correct. Les options de contrôle ont été supprimées au profit des sous-éléments de contrôle

Cette page vous a été utile?
0 / 5 - 0 notes