Impossible d'obtenir le chemin absolu module installé
Je suis avec un problème que je pense que c'est quelque chose lié à mon colis.json ou la version de cordova plate-forme.
Lorsque j'essaie d'exécuter un ionic state restore
il renvoie le résultat suivant:
Attempting to restore your Ionic application from package.json
Restoring Platforms
cordova platform add ios
cordova platform add android
Restore platforms is complete
Restoring Plugins
cordova plugin add cordova-plugin-whitelist
cordova plugin add cordova-plugin-console
cordova plugin add cordova-plugin-statusbar
cordova plugin add cordova-plugin-device
cordova plugin add cordova-plugin-splashscreen
cordova plugin add ionic-plugin-keyboard
cordova plugin add cordova-plugin-network-information
cordova plugin add cordova-plugin-file
cordova plugin add cordova-plugin-compat
cordova plugin add cordova-plugin-media
cordova plugin add https://github.com/AubreyHewes/cordova-background-audio.git
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues
Et lorsque j'essaie d'exécuter la commande qui a échoué (cordova plugin add https://github.com/AubreyHewes/cordova-background-audio.git
), il renvoie l'erreur suivante:
Error: Failed to fetch plugin git+https://github.com/AubreyHewes/cordova-background-audio.git via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Failed to get absolute path to installed module
Je ne comprends pas pourquoi il dit que c'est un problème de connexion, parce que ma connexion internet fonctionne très bien. Aussi l'URL du plugin est bien aussi.
Mon environnement info:
Cordova CLI: 7.0.0
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
ios-deploy version: 1.9.0
ios-sim version: 5.0.10
OS: OS X El Capitan
Node Version: v7.0.0
Xcode version: Xcode 8.1 Build version 8B62
Je suis en tirant mes cheveux pour ce problème. Avez-vous une idée de ce qui peut être la cause?
Mon colis.le contenu json:
{
"name": "paranaiba-app",
"version": "1.1.1",
"description": "paranaiba-app: An Ionic project",
"dependencies": {
"cordova-android": "^6.2.3",
"cordova-ios": "^4.4.0",
"cordova-plugin-compat": "~1.1.0",
"cordova-plugin-console": "~1.0.6",
"cordova-plugin-device": "~1.1.5",
"cordova-plugin-file": "~4.3.2",
"cordova-plugin-media": "~2.4.1",
"cordova-plugin-music-controls": "git+https://github.com/homerours/cordova-music-controls-plugin.git",
"cordova-plugin-network-information": "~1.3.2",
"cordova-plugin-splashscreen": "~4.0.2",
"cordova-plugin-statusbar": "~2.2.2",
"cordova-plugin-whitelist": "~1.3.2",
"gulp": "^3.5.6",
"gulp-concat": "^2.2.0",
"gulp-minify-css": "^0.3.0",
"gulp-rename": "^1.2.0",
"gulp-sass": "^2.0.4",
"ionic-plugin-keyboard": "~2.2.1",
"nl.kingsquare.cordova.background-audio": "git+https://github.com/AubreyHewes/cordova-background-audio.git",
"phonegap-plugin-push": "~1.8.4"
},
"devDependencies": {
"bower": "^1.3.3",
"gulp-util": "^2.2.14",
"shelljs": "^0.3.0"
},
"cordovaPlugins": [
"cordova-plugin-whitelist",
"cordova-plugin-console",
"cordova-plugin-statusbar",
"cordova-plugin-device",
"cordova-plugin-splashscreen",
"ionic-plugin-keyboard",
"cordova-plugin-network-information",
"cordova-plugin-file",
"cordova-plugin-compat",
"cordova-plugin-media",
{
"locator": "https://github.com/AubreyHewes/cordova-background-audio.git",
"id": "nl.kingsquare.cordova.background-audio"
},
{
"locator": "https://github.com/homerours/cordova-music-controls-plugin",
"id": "cordova-plugin-music-controls"
}
],
"cordovaPlatforms": [
{
"platform": "ios",
"version": "",
"locator": "ios"
},
{
"platform": "android",
"version": "",
"locator": "android"
}
],
"cordova": {
"platforms": [
"android",
"ios"
],
"plugins": {
"phonegap-plugin-push": {
"SENDER_ID": "XXXX"
},
"cordova-plugin-whitelist": {},
"cordova-plugin-console": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"ionic-plugin-keyboard": {},
"cordova-plugin-network-information": {},
"cordova-plugin-file": {},
"cordova-plugin-compat": {},
"cordova-plugin-media": {},
"nl.kingsquare.cordova.background-audio": {},
"cordova-plugin-music-controls": {}
}
}
}
Merci!
- Êtes-vous en mesure d'ajouter ce plugin sur le pur cordova application pour vérifier si ce cordova du problème ou de votre application? Certains changements ont été apportés à chercher de la logique dans cordova-7.0, probablement, il affecte votre application.
- essayé à l'instant, et a très bien fonctionné:
Saved plugin info for "nl.kingsquare.cordova.background-audio" to config.xml
. Merci pour votre temps! - Essayez de supprimer ce plugin à partir de node_modules manuellement dans votre ionique application et de l'installer ce plugin, encore une fois,
- Cordova trouve la différence entre les fichiers avant et après l'installation du plugin dans node_modules, si il n'y a pas de différence et git repoName est différent de celui moduleID elle peut conduire à l'erreur que vous recevez.
- merci beaucoup, a très bien fonctionné enlever le plug-in de
node_modules/
et de le réinstaller. - mon plaisir, mais de toute façon, c'est un bogue dans cordova-7.0, je vais faire une contribution pour résoudre le problème 🙂
- même pensé qu'il réinstallé, lorsque j'essaie d'exécuter le
ionic state restore
il conserve son retour d'erreur lors de la restauration de ce plugin:Caught exception: undefined
(même message d'erreur sur le code de devis sur le problème de la description ci-dessus). Avez-vous une idée de ce que peut être la cause? - essayez de supprimer le plugin de node_modules et exécuter
ionic state resore
- A très bien fonctionné. Mais j'ai dû supprimer de
node_modules
tous les plugins que l'utilisation de git pour la restauration. Merci.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même message d'erreur lors de l'ajout d'un plug-in local:
Error: Failed to get absolute path to installed module
.À l'aide de l'option
--nofetch
([email protected]) a fixé:cordova plugin add ../my-plugin --nofetch
Selon https://github.com/apache/cordova-cli/blob/master/RELEASENOTES.md :
Utilisation
--nofetch
drapeau pour aller chercher les plates-formes et les plugins à l'aide de vieux à aller chercher de logique.--nofetch
drapeau enregistrer pourpackage.json
- il ne semble pas pour moi, et par conséquent, l'exécutioncordova prepare
sur un nouveau clone produit la même erreur.--nofetch
option est supprimée dans Cordova 8.0.0: issues.apache.org/jira/browse/CB-13055Edit: Cette réponse est obsolète. Veuillez utiliser le réponse de uutrecht à la place.
J'ai eu le même problème à l'heure actuelle. Je l'ai fixée par la dégradation de cordoue à partir de v7.0.0 v6.5.0
npm i -g [email protected]
Ils ont changé la façon dont elles vont chercher les plugins. https://cordova.apache.org/news/2017/05/04/cordova-7.html
sudo npm i -g [email protected]
RemplacerX.X.X
avec la version que vous souhaitez utiliser.cordova config set fetch false
et nous espérons que ça va revenir à la version antérieure à la version 7 de comportement.--nofetch
option a été supprimée dans Cordova version 8.0.0: https://issues.apache.org/jira/browse/CB-13055Si vous avez déjà installé Cordova 8.x.x, alors vous pouvez revenir à la version 7.1.0 et ensuite utiliser le
--nofetch
option.Exécutez la commande suivante pour rétrograder Cordoue à 7.1.0:
Si la commande ci-dessus ne fonctionne pas, alors essayez de désinstaller cordova au premier abord, et ensuite installer cordova version 7.1.0:
Ensuite, vérifiez le Cordova version pour vérifier si il est déclassé ou pas:
--nofetch
Supprimer le plugin, vous avez installé à partir de la config.xml le package.json et le paquet-lock.json.
Puis essayez à nouveau.
Je travaille pour la plupart des cas.
Cette réponse s'applique à: Cordova 8.1.2 ([email protected])
Dans mon cas, il a eu à faire avec
git+https://...
partie de l'url, répertoriés danspackage.json
en vertu de dépendances. Changer l'https://...
a fait le tour.Dans le cordova src ils utilisent un module
cordova-fetch
. Dans la fonctiongetPath
l'erreur est levée. Il pourrait faire appelsearchDirForTarget
qui à son tour appelle moduleis-url
. La cible, par exemple, l'url, obtient validée ici etgit+https://...
rendements invalide parce qu'elle ne correspond pas à/^(?:\w+:)?\/\/(\S+)$/
.Je pense que le problème est l'id du plugin paquet.json différents avec repo git nom
par exemple:
id de package.json => com.abc.cde
l'url git doit être https://github.com/{nom d'utilisateur}/com.abc.cde.git
Je fixe l'exécution de l'suivantes de commande (à l'aide de cordova v 8.1.2):
ionic cordova plugin rm PLUGIN_NAME && ionic cordova plugin add PLUGIN_NAME